C 中cla 与struct的区别

文章作者 100test 发表时间 2007:09:15 12:43:40
来源 100Test.Com百考试题网


  关于使用大括号初始化

  class和struct如果定义了构造函数的话,都不能用大括号进行初始化

  如果没有定义构造函数,struct可以用大括号初始化。

  如果没有定义构造函数,且所有成员变量全是public的话,可以用大括号初始化。

  关于默认访问权限

  class中默认的成员访问权限是private的,而struct中则是public的。

  关于继承方式

  class继承默认是private继承,而struct继承默认是public继承。

  且看如下代码(看看编译器给出的错误信息):

class T1
{
 public:
  void f()
  {
   cout<<"T1::f()"<  }
 int x,y.
}.

struct T2
{
 int x.
 void f(){cout<<"T2::f()"<}.


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
void f(X x)
{
}
//出错信息:d:codecpptestcpptestcpptest.cpp(33) : error C2065: X : undeclared identifier


相关文章


C builder的文件读写操作总结
《C 0x漫谈》系列之:右值引用
C 类对象的复制-拷贝构造函数
缓冲区溢出原理浅析以及防护
C 中cla 与struct的区别
实例解析C _CLI线程之线程状态持久性
C _CLI解析之基于堆栈的对象与跟踪引用
MoreEffectiveC 之考虑变更程序库
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛