众所周知c++语言为面向对象的编程,我们在实际编程时,所用的关键字为class ,而struct为结构体关键字,主要是作为一种数据结构采用,并不把它当做对象。他们之间的异同主要在与那里呢?
代码1
class A
{
public:
void func(){cout<<"A::func"<<endl;}
};
代码2
struct A
{
void func(){cout<<"A::func"<<endl;}
};
在main函数中调用发现,他们都可以输出相应的结果也就是说struct类型同样可以实现函数,这一点与class完全一样
但是同时我们也注意到了一个区别那就是class中带有了public这样的属性标志,而struct中却省略了这点,而这点就是class
与struct最本质的区别:他们的默认属性不同,class默认属性为private,而struct默认属性为public。所以struct完全可以像class一样进行应用。
但是他们可以有不同的使用技巧,例如:<pre class="cpp" name="code">struct A
{
int a;
int b;
};
我们可以使用 struct A a={1,2}来进行初始化,而一般的类当然也可以做到了,但是需要加上public属性,否则会变异失败
不过如果是下面的代码:
struct A
{
A(){a=1;b=2;};
int a;
int b;
};
编译失败了,与class一样如果struct也带上一个构造函数或者是virtual 函数的话,就不能使用那种定义方式,当然普通函数可以。
综上,struct 和 class的最大区别只是在于默认属性上
<pre class="cpp" name="code">