在C++中,结构体与类的用法大致相似,除了以下几点区别:
- C++结构体内部成员变量及成员函数默认的访问级别是public,而C++类的内部成员变量及成员函数默认级别是private;
- C++结构体的继承默认是public,而C++类的继承默认是private;
以下是几个实例:
// Program 1
#include <stdio.h>
class Test {
int x; // x is private
};
int main()
{
Test t;
t.x = 20; // compiler error because x is private
getchar();
return 0;
}
// Program 2
#include <stdio.h>
struct Test {
int x; // x is public
};
int main()
{
Test t;
t.x = 20; // works fine because x is public
getchar();
return 0;
}
// Program 3
#include <stdio.h>
class Base {
public:
int x;
};
class Derived : Base { }; // is equilalent to class Derived : private Base {}
int main()
{
Derived d;
d.x = 20; // compiler error becuase inheritance is private
getchar();
return 0;
}
// Program 4
#include <stdio.h>
class Base {
public:
int x;
};
struct Derived : Base { }; // is equilalent to struct Derived : public Base {}
int main()
{
Derived d;
d.x = 20; // works fine becuase inheritance is public
getchar();
return 0;
}
程序1、3编译成功,而程序2、4编译失败
[参考链接]
http://www.cnblogs.com/vace/archive/2011/04/14/2015754.html
http://www.geeksforgeeks.org/g-fact-76/