Programming 版 (精华区)
发信人: JJason (总统~~), 信区: Programming
标 题: [合集]c++的问题
发信站: 哈工大紫丁香 (2003年03月10日10:33:37 星期一), 站内信件
────────────────────────────────────────
godkiller (一天到晚游泳的鱼) 于 2002年12月19日15:37:10 星期四 说道:
这样定义一个class
class X
{
int i;
public:
int j;
static X x;
public:
X(int ii=0,int jj=0):i(ii),j(jj){}
void f(){i=x.i;j=x.j;}
};
X X::x(1,2);
在X::f()中可以访问x的私有数据成员
────────────────────────────────────────
JJason (酱牛肉) 于 2002年12月19日16:04:32 星期四 说道:
【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: 这样定义一个class
: class X
: {
: int i;
: public:
: int j;
: static X x;
~~~~~~~~~~~这样,也可以?
: public:
: X(int ii=0,int jj=0):i(ii),j(jj){}
: void f(){i=x.i;j=x.j;}
────────────────────────────────────────
charlie (飞龙在天) 于 2002年12月19日16:28:20 星期四 说道:
这样好像循环定义了啊
只有指针可以如此吧?
【 在 JJason (酱牛肉) 的大作中提到: 】
: 【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: : 这样定义一个class
: : class X
: : {
: : int i;
: : public:
: : int j;
: : static X x;
: ~~~~~~~~~~~这样,也可以?
: : public:
────────────────────────────────────────
godkiller (一天到晚游泳的鱼) 于 2002年12月19日16:39:20 星期四 说道:
right in vc++6 and dev-c++
【 在 JJason (酱牛肉) 的大作中提到: 】
: 【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: : 这样定义一个class
: : class X
: : {
: : int i;
: : public:
: : int j;
: : static X x;
: ~~~~~~~~~~~这样,也可以?
: : public:
────────────────────────────────────────
charlie (飞龙在天) 于 2002年12月19日16:44:48 星期四 说道:
不明白了
【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: right in vc++6 and dev-c++
: 【 在 JJason (酱牛肉) 的大作中提到: 】
: : ~~~~~~~~~~~这样,也可以?
────────────────────────────────────────
xceman (辉->雪狼*遥望北方) 于 2002年12月19日17:51:33 星期四 说道:
wrong in vc7
【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: right in vc++6 and dev-c++
: 【 在 JJason (酱牛肉) 的大作中提到: 】
: : ~~~~~~~~~~~这样,也可以?
────────────────────────────────────────
coolren (茄子) 于 2002年12月19日22:20:47 星期四 说道:
我试了一下,开始以为循环定义只可以对指针和引用
没想到static也可以!!
但是访问起来总是有问题,也不能够在构造函数中初始化
在 f()中也访问不了
BCB5.0
【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: 这样定义一个class
: class X
: {
: int i;
: public:
: int j;
: static X x;
: public:
: X(int ii=0,int jj=0):i(ii),j(jj){}
: void f(){i=x.i;j=x.j;}
────────────────────────────────────────
godkiller (一天到晚游泳的鱼) 于 2002年12月20日08:51:50 星期五 说道:
这是the c++ programming language中的一个例子的简略版
我也不知道为什么
【 在 charlie (飞龙在天) 的大作中提到: 】
: 不明白了
: 【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: : right in vc++6 and dev-c++
────────────────────────────────────────
godkiller (一天到晚游泳的鱼) 于 2002年12月20日08:52:26 星期五 说道:
静态变量当然不能在构造函数中初始化了
【 在 coolren (茄子) 的大作中提到: 】
: 我试了一下,开始以为循环定义只可以对指针和引用
: 没想到static也可以!!
: 但是访问起来总是有问题,也不能够在构造函数中初始化
: 在 f()中也访问不了
: BCB5.0
: 【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: : 这样定义一个class
: : class X
: : {
: : int i;
: : public:
────────────────────────────────────────
zhangyan (AIX怎么就这么脆弱呢?) 于 2002年12月20日09:41:03 星期五 说道:
编译器在编译一个class的时候
需要知道所编译的类的size
这也就意味着,要知道每一个member的size
然后再经过alignment,求得class的size
在这里
static member并不会占用class的空间
static member并不分配在类中
所以可以编译
【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: 这样定义一个class
: class X
: {
: int i;
: public:
: int j;
: static X x;
: public:
: X(int ii=0,int jj=0):i(ii),j(jj){}
: void f(){i=x.i;j=x.j;}
────────────────────────────────────────
gunslover (how long how long dire straits) 于 2002年12月20日10:22:35 星期五 说道:
虽然可以 编译
但还是不太和逻辑
【 在 zhangyan (AIX怎么就这么脆弱呢?) 的大作中提到: 】
: 编译器在编译一个class的时候
: 需要知道所编译的类的size
: 这也就意味着,要知道每一个member的size
: 然后再经过alignment,求得class的size
: 在这里
: static member并不会占用class的空间
: static member并不分配在类中
: 所以可以编译
: 【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: : 这样定义一个class
: : class X
────────────────────────────────────────
zhangyan (AIX怎么就这么脆弱呢?) 于 2002年12月20日10:25:05 星期五 说道:
怎么不符合逻辑了?
【 在 gunslover (how long how long dire straits) 的大作中提到: 】
: 虽然可以 编译
: 但还是不太和逻辑
: 【 在 zhangyan (AIX怎么就这么脆弱呢?) 的大作中提到: 】
: : 编译器在编译一个class的时候
: : 需要知道所编译的类的size
: : 这也就意味着,要知道每一个member的size
: : 然后再经过alignment,求得class的size
: : 在这里
: : static member并不会占用class的空间
: : static member并不分配在类中
────────────────────────────────────────
godkiller (一天到晚游泳的鱼) 于 2002年12月20日13:45:58 星期五 说道:
那为什么在X中可以访问x的私有变量
【 在 zhangyan (AIX怎么就这么脆弱呢?) 的大作中提到: 】
: 编译器在编译一个class的时候
: 需要知道所编译的类的size
: 这也就意味着,要知道每一个member的size
: 然后再经过alignment,求得class的size
: 在这里
: static member并不会占用class的空间
: static member并不分配在类中
: 所以可以编译
: 【 在 godkiller (一天到晚游泳的鱼) 的大作中提到: 】
: : 这样定义一个class
: : class X
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.688毫秒