| 类与结构体混合使用 |
| [ 来源:ITWENKU 时间:2007-4-17 16:04:56 | 浏览:320人次
] |
| |
|
请各位给小弟一个类与结构体混合使用的例子(编写一个通讯录),结构体怎样用于类中.
struct A { int a; char *b; };
class B { private: A aa; int c; long d; public://interface void test();
};
在C++里,struct就是class,class就是struct,你是受了不良读物的误导了。
struct A {
int a; char *b; };
class B:public A { private: int c; long d; public://interface void test();
};
taodm((不能收CSDN社区短信息,请莫浪费精力)) ( ) 信誉:100 Blog 加为好友 2007-04-17 16:19:26 得分: 0 在C++里,struct就是class,class就是struct,你是受了不良读物的误导了。 你也被误导 struct是struct,class是class 虽然很多时候struct可以当类来使用。
在C++中,结构和类确实是一回事,struct和class的区别极小,好像在class中,如果你对变量不加修饰符(public等)默认是private,在struct中,一般对变量是不加修饰符的,默认是public,除了这个区别,它们几乎没有区别,struct在C++中保留估计还是因为兼容。
C++和C中的struct和class只有其成员的默认访问权限不同,struct默认public,class默认private,如以下几个类/结构都是等效的: struct MyClass{ int a; } struct MyClass{ public: int a; } class MyClass{ public: int a; }
建议用class取代struct
我按照如下原则用struct。
1.POD 用 struct
2.纯接口 用 struct, 如: struct my_interface { virtual void method_1() = 0; virtual double method_2(int) = 0; };
区别在Class要申明是public还是 private
区别是。在不定义public、private的时候,struct默认是public类型,class默认是private。
就这唯一的区别,大家都知道的,就不要再提了。 还是当它一样的比较好理解。
晕,为什么要类与结构体混合,都用类不好么?struct本来就不该是C++里面的东西,全是为了兼容C而已.
回复人:yutaooo() ( 一级(初级)) 信誉:100 2007-04-17 17:13:13 得分:0 ? 我按照如下原则用struct。
1.POD 用 struct
2.纯接口 用 struct, 如: struct my_interface { virtual void method_1() = 0; virtual double method_2(int) = 0; }; ---------------------------------- 纯接口至少要给个虚析构函数吧,如果struct是为了与C兼容的话,那么他不该有析构函数,所以我觉得纯接口应该使用class
|
|
 |
推荐文章 |
|