目录
在GNU C++标准库的源码中有大量的struct的应用,其用法看着跟class基本一样,显然C++对C中的struct做了扩展,这两者之间有啥区别了?
1、定义
struct一样支持访问控制,构造函数,析构函数,列表初始化语法,静态成员,内联函数,友元函数等,class支持的功能都可以用到struct上,两者最大的区别是struct的默认访问权限是public,而class默认是private。
#include <iostream>
using std::cout;
struct A{
//默认是public
int a=1;
static int b;
A(int i):a(i){cout<<"construct A\n";};
~A(){cout<<"destroy A\n";};
void show();
private:
int c=2;
friend void showC(A & a);
};
void A::show(){
cout<<"struct A,a="<<a<<"\n";
}
void showC(A & a){
cout<<"struct A,c="<<a.c<<"\n";
}
int A::b=2;
int main(){
A a(3);
cout<<"a=