Table of Contents
#custom-toc-container
结构体和类
# 结构体 ## 访问权限 1. C++中的结构体在定义变量时是可以不写struct关键字的; 1. C++的结构体实际上也是类 - C++的结构体是有权限的 ```cpp private(私有成员): 只能在结构体内进行访问 protected(保护成员): 只能在结构体内或派生结构体中去访问 public(公有成员): 可以在结构体内或者结构体外进行访问 ``` `默认权限`为:公有(public)。 - C++的结构体中可以定义函数。 ## 继承方式 继承方式,分为三种:public、 protected、 private。 `默认继承方式`为public。 # 类 C++中的类,类似于C语言的结构体,可以说是C语言结构体的升级。 ## 访问权限 C++中为类成员设置访问权限,权限分为三种: | 权限 | 说明 | |:-----------------:|:----------------------:| | private(私有成员) | 只能在类内进行访问 | | protected(保护成员)| 只能在类内或派生类中去访问| | public(公有成员) | 可以在类内或者类外进行访问 | 类的权限:C++类的`默认权限`为私有(private)。 ## 继承方式 继承方式,分为三种:public、 protected、 private。 `默认继承方式`为private。 # 类&结构体 C++中,结构体其实也是类,只不过class与struct的 默认访问控制和默认继承方式不同。 ## 成员初始化列表 **C++的成员初始化列表**,是`类`和`结构体`初始化成员变量的方式之一,位于构造函数参数列表之后,以冒号标识。 ```cpp class Entity { private: std::string m_name; int x, y; public: Entity() : m_name("Default") // 成员初始化列表 {} Entity(const std::string& name) : m_name(name), x(0), y(0) // 成员初始化列表 {} }; struct Dog { private: std::string m_name; public: Dog() : m_name("dog") {} Dog(const std::string& name) : m_name(name) {} }; ``` ## this指针 `this`关键字,是指向当前对象的不可变(const)指针。 ```cpp class Position { private: flaot x, y; public: Position(flat x, float y) { this->x = x; this->y = y; // this指针 操作成员变量 } void move(float x, float y) { this->x = x; this->y = y; this->info(); // this指针 调用成员函数 } void info() { std::cout << "Move to: " << "(" << x << "," << y << ")" << std::endl; } }; ```
文章目录
内存
会分配新内存的操作
节省内存的操作