日期:2011-03-22 13:55:00 来源:本站整理
C++中class与struct的辨别[VC/C++编程]
本文“C++中class与struct的辨别[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
很老的问题了.本日略微总结了下,有遗漏的地方和错误的地方还望大家增补.
关于利用大括号初始化
class和struct假如定义了构造函数的话,都不能用大括号举行初始化
假如没有定义构造函数,struct可以用大括号初始化.
假如没有定义构造函数,且全部成员变量满是public的话,可以用大括号初始化.
关于默许拜候权限
class中默许的成员拜候权限是private的,而struct中则是public的.
关于担当方法
class担当默许是private担当,而struct担当默许是public担当.
且看以下代码(看看编译器给出的错误信息):
class T1
{
public:
void f()
{
cout<<"T1::f()"<<endl;
}
int x,y;
};
struct T2
{
int x;
void f(){cout<<"T2::f()"<<endl;}
};
struct TT1 : T1
{
};
class TT2 : T2
{
};
int main()
{
TT1 t1;
TT2 t2;
t1.f();
t2.f();
}
关于模版
在模版中,范例参数前面可以利用class或typename,假如利用struct,则含义差别,struct背面跟的是“non-type template parameter”,而class或typename背面跟的是范例参数.
template <struct X>
void f(X x)
{
}
//出错信息:d:codecpptestcpptestcpptest.cpp(33) : error C2065: 'X' : undeclared identifier
以上是“C++中class与struct的辨别[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论