c/c++中什么时候用struct而不用类?
来源:百度知道 编辑:UC知道 时间:2024/05/22 06:38:14
struct TargetAddress
{
class OBUnique_object_key { };
typedef OB::FixSeq< ::CORBA::Octet, OBUnique_object_key > _object_key_seq;
private:
union
{
_object_key_seq* object_key;
::IOP::TaggedProfile* profile;
IORAddressingInfo* ior;
} _ob_v_;
bool _ob_i_;
AddressingDisposition _ob_d_;
void _OB_remove();
bool _OB_check(AddressingDisposition) const;
public:
typedef TargetAddress_var _var_type;
#ifdef OB_CLEAR_MEM
TargetAddress();
#else
TargetAddress() : _ob_i_(false) { }
#endif
TargetAddress(const TargetAddress&);
~TargetAddress() { _OB_remove(); }
TargetAddress& operator=(const TargetAddress&);
void _d(AddressingDisposition);
AddressingDis
runtoaim说得有一点道理,但是不完全对。
应该分语言来说:
在C中struct是用来封装数据的,其中不能够有函数成员。
而在C++中继承了在C语言中的用法,但是又做了改进,那就是在struct
中允许有成员函数,这时候的struct和类就没有什么本质的区别了,
你可以在struct中进行class的任何语法操作。比如构造函数,析构函数,重载运算符,等等。唯一的区别:
就是struct中的变量默认存取权限是public的,class中的是private
所以你既可以使用struct也可以用class,至于权限问题,你自己用
public,private,protected关键字指定就可以了!
struct 和 class的唯一区别就是struct中的变量默认存取权限是public的,class中的是private
这么比喻吧, 举个例子
class people,将"人"作为类的定义对象, 那么所有的人都是这个类的对象,如: people me, you;这个类里面有很多很多成员变量,如:性别,年龄,名字,国籍,爱好等等
而struct是一个结构, 可以来单个表述某类具有共同特性的事物,如: 爱好这个集合, 可以定义一个结构来集合爱好struct habbits, 这个结构包括如: 看书, 运动, 游戏之类的等等
class能实现所有struct能实现的。由于windows是用c开发的,c里使用了大量的struct,所以现在忍让保留了struct,使用时注意,struct默认成员是public的,而class默认是private的,建议使用类。。。。。。
个人喜好,代码的编写不可能千遍一律,需要具体问题具体分析。
这个问题你得搞清楚,strcurt用来封装一个集合,比如说用来表示一个学生的学号,性别,年纪之类的就可以用strcurt
而class用来封装程序的