种到底比结构体多多少东西
类到底比结构体多多少东西?
我在使用类的时候,总是感觉类和结构体的不同除了类的默认访问属性是private,结构体的默认访问属性是public,还有就是似乎结构体中不可以包含函数,但是,今天尝试了一下,推翻了原来那个结论,举例如下:
#include <iostream>
using namespace std;
typedef struct Point
{
int x,y;
void display();
}Point ;
void Point::display()
{
cout<<x<<" "<<y<<endl;
}
void main()
{
Point p;
p.x=1;
p.y=2;
p.display();
}
运行结果和类的运行结果完全一样。
而且我试了一下,struct竟然也可以使用protected,太让我惊讶了!!!
这不仅让我迷糊了,到底class比struct多多少东西呢?
------解决方案--------------------
在C++中类和结构差别不大,就是你说的缺省访问控制不同,做过COM的就知道,接口其实都是使用结构定义一堆纯虚函数让实现类去继承实现的,这不是什么秘密了哦,不必大惊小怪~
------解决方案--------------------
C++保留struct是为了兼容C
------解决方案--------------------
在C++中,class和struct一模一样,除了缺省地class中的成员皆private,struct中的成员皆public外。
------解决方案--------------------
除了那几个区别,struct就当做class用的
我在使用类的时候,总是感觉类和结构体的不同除了类的默认访问属性是private,结构体的默认访问属性是public,还有就是似乎结构体中不可以包含函数,但是,今天尝试了一下,推翻了原来那个结论,举例如下:
#include <iostream>
using namespace std;
typedef struct Point
{
int x,y;
void display();
}Point ;
void Point::display()
{
cout<<x<<" "<<y<<endl;
}
void main()
{
Point p;
p.x=1;
p.y=2;
p.display();
}
运行结果和类的运行结果完全一样。
而且我试了一下,struct竟然也可以使用protected,太让我惊讶了!!!
这不仅让我迷糊了,到底class比struct多多少东西呢?
------解决方案--------------------
在C++中类和结构差别不大,就是你说的缺省访问控制不同,做过COM的就知道,接口其实都是使用结构定义一堆纯虚函数让实现类去继承实现的,这不是什么秘密了哦,不必大惊小怪~
------解决方案--------------------
C++保留struct是为了兼容C
------解决方案--------------------
在C++中,class和struct一模一样,除了缺省地class中的成员皆private,struct中的成员皆public外。
------解决方案--------------------
除了那几个区别,struct就当做class用的