1.c++升级了类
C
语言结构体中只能定义变量,在
C++
中,结构体内不仅可以定义变量,也可以定义函数。
比如:
之前在数据结构初阶中,用
C
语言方式实现的栈,结构体中只能定义变量
;现在以
C++
方式实现,
会发现
struct
中也可以定义函数。
类定义:
class A
{
public:
void print()
{
year = 2024;
cout <<year<< endl;
}
private:
int year;
};
int main()
{
A a;
a.print();
return 0;
}
也可以声明放在.h文件里,然后在.cpp文件里写定义
2.类的访问限定符
1.
public修饰的成员在类外可以直接被访问
2. protected
和
private
修饰的成员在类外不能直接被访问
(
此处
protected
和
private
是类似的
)
3.
访问权限
作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
4.
如果后面没有访问限定符,作用域就到
}
即类结束。
5. class
的默认访问权限为
private
,
struct
为
public(
因为
struct
要兼容
C)
什么叫做在外面可以直接访问呢
![](https://img-blog.csdnimg.cn/direct/fdf6d3ca93cf45ae91019e13e6d4c368.png)
![](https://img-blog.csdnimg.cn/direct/f3fcf00d10f8458481a9a83e2111f9f4.png)
struct和class的区别:
C++
需要兼容
C
语言,所以
C++
中
struct
可以当成结构体使用。另外
C++
中
struct
还可以用来
定义类。和
class
定义类是一样的,区别是
struct
定义的类默认访问权限是
public
,
class
定义的类
默认访问权限是
private
。注意:在继承和模板参数列表位置,
struct
和
class
也有区别,后序给大
家介绍。
3.类的作用域
类定义了一个新的作用域
,类的所有成员都在类的作用域中
。
在类体外定义成员时,需要使用
::
作用域操作符指明成员属于哪个类域。
![](https://img-blog.csdnimg.cn/direct/0854a8f9d10a466ba07a57072e3faa52.png)
4.实例化对象
1.
类是对对象进行描述的
,是一个
模型
一样的东西,限定了类有哪些成员,定义出一个类
并没
有分配实际的内存空间
来存储它;比如:入学时填写的学生信息表,表格就可以看成是一个
类,来描述具体学生信息。
2.
一个类可以实例化出多个对象,
实例化出的对象
占用实际的物理空间,存储类成员变量
![](https://img-blog.csdnimg.cn/direct/79b8ab34891741c0b7be7a11480405f4.png)
其实说白了实例化对象就是原来c语言的定义