C++语法系列
大西洋码头
我还年轻,我没有时间
展开
-
C++语法系列 类和对象Ⅴ 多态
多态基本概念动态多态的满足条件动态多态的使用动态多态的原理浅析纯虚函数和抽象类虚析构和纯虚析构基本概念多态分为两种静态多态函数重载和运算符重载属于静态多态,复用函数名。编译时确定函数地址动态多态用子类和虚函数实现运行时多态,运行时确定函数地址。父类的指针或引用指向子类的对象,根据子类的不同,来确定调用的具体是谁的函数。//动态多态class Animal {public: virtual void speak(){ cout << "动物在说话原创 2021-10-15 09:36:50 · 84 阅读 · 0 评论 -
C++语法系列 类和对象Ⅳ 继承
语法// class 子类名称 : 继承方式 父类名称 {}class Student: public Person {};继承方式前提: 父类中的私有成员无论采用哪种继承方式,都不会被继承公共继承父类中各成员的访问权限不变保护继承父类中除私有成员外,其他成员的访问权限都变成protected私有继承父类中各成员均继承为private成员继承中的对象模型class Father {public: int a;protected: int b;pri原创 2021-10-13 15:03:16 · 79 阅读 · 0 评论 -
C++语法系列 类和对象Ⅲ 运算符重载
运算符重载概念:对已有的运算符进行重新定义,赋予其另一种功能,以适应不同的数据类型加法运算符重载class Person {public: int A; int B; /*Person addPerson(Person& p) const { //将此函数命名为operator+ 即完成加号运算符的重载 Person tmp{}; tmp.A = this->A + p.A; tmp.B = thi原创 2021-10-13 14:58:18 · 70 阅读 · 0 评论 -
C++语法系列 类和对象Ⅱ
C++对象模型成员变量和成员函数分开存储只有普通成员变量才属于对象,函数和静态成员变量都不属于对象class Person{public: int a; int b; char c; void prt() { cout << a << endl << b << c; }};class VD{};void test() { Person p; VD v; co原创 2021-09-23 16:43:29 · 63 阅读 · 0 评论 -
C++语法系列 函数
函数默认参数参数列表中,如果某个位置有了默认参数,则其右侧所有的参数必须有默认值如果函数声明有默认参数,则函数实现就不能再写一次默认参数,即只能写一次占位参数语法:返回值 函数名(数据类型){};作用:调用函数时,必须写上相应的参数注意:占位参数也可以有默认值函数重载的注意事项参数列表中包含引用void func(int & a){ cout << "func()" << endl;}void func(const int &am原创 2021-09-18 18:24:23 · 81 阅读 · 0 评论 -
C++语法系列 类和对象Ⅰ
类和对象将事物的属性和行为写在一起,放在类里,来表现事物const double PI = 3.14159;class Circle{//访问权限public: //属性 int r; //行为(函数) double getP(){ return 2 * PI * r; }}; // ⚠️ 这里有一个分号int main(){ //借助Circle类,创建一个圆(即一个对象) Circle c1; c1.r = 5; cout << c1原创 2021-09-18 18:16:52 · 104 阅读 · 0 评论 -
C++语法系列 引用
引用C++推荐使用引用,因为语法简洁,其本质是指针常量,但编译器帮我们完成了有关指针的操作用途:给变量起别名,简化地址传递语法:数据类型& 别名 = 原名;int a = 10;int &b = a;b = 20;cout << a << endl; //20cout << &a << endl << &b << endl; //输出的两个值是一样的引用的本质//引用的本质原创 2021-09-18 17:57:06 · 95 阅读 · 0 评论