cherno c++系列学习笔记
首先,从技术上来讲,struct 和class区别就在于可见度的区别
类在默认情况下是私有的private 如果不修改任何可见度的情况下,而struct相反默认为public
从使用情况下来讲struct结构体在C++中继续存在的唯一原因是它希望与C保持向下兼容性,
因为C中没有类但是与结构体,如果去掉struct关键字就会失去兼容性
当然我们也可以用#define来查找 #define struct class 用class替换所用的struct
如果想表示变量结构 就用struct 但是在class中可以使用继承,表示一个完整的类层次结构,或者某种继承层次结构
C++类 和结构体中的静态
struct
#include<iostream>
struct Entity
{
static int x, y;
void print()
{
std::cout << x <<"," << y << std::endl;
}
};
int Entity::x;
int Entity::y;
int main()
{
Entity e;
e.x = 8;
e.y = 9;
e.print();
Entity e1;
e1.x = 5;
e1.y = 8;
e1.print();
std::cin.get();
}//输出(8,9) (5,8)
#include<iostream>
struct Entity
{
static int x, y;
void print()
{
std::cout << x <<"," << y << std::endl;
}
};
int Entity::x;
int Entity::y;
int main()
{
Entity e;
e.x = 8;
e.y = 9;
Entity e1;
e1.x = 5;
e1.y = 8;
e.print();
e1.print();
std::cin.get();
}/输出(5,8) (5,8)
两次输出结果不一样是因为当我们让x,y 变量为静态时,这两个变量在Entity类的所有实例中只有一个实例,当我们改变第二个x,y时它实际上和第一个x,y完全一样,指向的是相同的内存静态方法没有类实例