C++基础学习
C++基础学习
xhk951
这个作者很懒,什么都没留下…
展开
-
十九、C++ 抽象类界面(下)
这样写makefile的好处:修改English.cpp,不用重新生成Human,只重新生成libHuman.so。一个是类编程: 提供类,比如Englishman、 Chinese。修改类的时候,并不用重新生成这些应用程序。一个是应用编程:Human,使用这些类。原创 2023-11-22 23:25:29 · 34 阅读 · 1 评论 -
十七、C++ 抽象类
如果Chiness 中没有实现 driving函数,那么 Chiness 还是一个抽象类,不能用来是实例化对象。virtual void eating(void) 这些函数没必要在基类里面实现,派生类里面肯定提供这些函数。纯虚函数 含有纯虚函数的类 称为抽象类,抽象类不能用来实例化对象,它是用来给派生类定义好框架。做一个"各个国家的人"的调查:饮食、穿衣、开车...原创 2023-11-19 21:53:57 · 35 阅读 · 0 评论 -
十八、C++ 抽象类界面(上)
如果再增加一个国家,增加一种函数,太麻烦了,需要实现很多函数。原创 2023-11-19 22:32:30 · 36 阅读 · 0 评论 -
十六、C++ 类型转换
类有虚函数,它的对象里面就含有一个指针, 指向一个表,表含有类信息,从类信息里面知道这个对象是属于哪个类的、继承信息。该运算符把 expression 转换成 type-id 类型的对象。为什么称为动态类型转换?type-id 必须是类的指针、类的引用或者 void*;如果 type-id是指针,expression必须也是指针。如果 type-id是引用,expression必须也是引用。上行:派生类对象转化为基类对象。下行:基类对象转化为派生类对象。前面是指针,下面改为引用。动态类型转换就是根据。原创 2023-11-19 17:13:09 · 32 阅读 · 0 评论 -
十五、C++ 类型转换
reinterpret_cast < type-id > 表明为模版函数。(expression) 表明为函数,expression是参数。注意:其不能把原有的 const 只读属性转换成可读可写属性。原创 2023-11-19 16:12:49 · 36 阅读 · 0 评论 -
十四、C++ 多态
之所以引入虚函数,是为了引入多态多态就是使用相同的调用方法,对不同的对象,它会调用不同类里面实现的函数public:public:public:h.eating();Human h;Chinese c;return 0;原创 2023-11-19 15:33:34 · 35 阅读 · 0 评论 -
十三、C++ 再论构造函数
虚拟基类:LeftRightCom 排在第三个。原创 2023-11-16 22:38:41 · 42 阅读 · 1 评论 -
十二、C++ 多重继承
a.一个派生类可以有多个基类b.可能有二义性,解决办法:虚拟继承,Softbed的基类Soft、Bed共享一个Furniture对象尽量避免使用多重继承,它使得程序变得十分复杂。原创 2023-11-15 22:30:41 · 34 阅读 · 0 评论 -
十一、C++ 访问控制和继承
2.可以问父亲要钱:通过protected/public 的成员函数。1.不能直接拿父亲的私房钱:派生类不能访问基类的私有成员。protected:外接不可见,不能直接访问;派生类可以访问 protected成员,其他代码不可以。可以访问保护成员,不能在main函数里面访问。儿子继承来的财产,他可以捐给别人,也可以私藏。private:外界不可见,不能直接访问。到的成员,Son可以修改它的权限,a. 抽象出数据成员、成员函数。public:外接可以直接访问。原创 2023-11-13 23:02:07 · 46 阅读 · 0 评论 -
十、C++ 运算符重载
值返回:返回函数内部定义的局部变量,该变量在函数执行时被创建,执行完毕时被销毁,只返 回值,效率低。选择原则:不影响运算结果,效率优先。原创 2023-11-12 18:39:36 · 44 阅读 · 1 评论 -
九、C++ 静态成员以及友元
这个值 cnt 应该属于整个 Person类,只有一份,而不是属于某一个对象,怎么体现这一点?cnt:记录用Person类实例化了多少个对象,在构造函数里面进行 cnt++改进:把add设置成class的朋友,可以直接访问private。因为我们想在所有对象创建之前,就定义和初始化静态数据成员。在main函数之外定义和初始化静态数据成员,为什么?可以通过对象来调用getCount( )静态成员函数可以在类里面声明并定义。缺点:相加需要调用6个函数,效率低。也可以在类里面声明,在外面定义。原创 2023-11-12 16:55:21 · 43 阅读 · 1 评论 -
八、C++ 构造函数(下)
按进行中定义对象的顺序调用构造函数,全局对象在main函数执行前被构造。静态对象值调用一次构造函数,原创 2023-11-09 22:17:00 · 49 阅读 · 1 评论 -
七、C++ 构造函数(中)
释放per时,会把name对应内存释放掉,释放per2时,再次释放name对应内存。Person(Person &per) //拷贝构造函数。所以现在不能使用默认的拷贝构造函数,需要自己实现。没有构造、析构函数,系统默认为空函数。它们指向同块内存,会带来什么隐患呢?会调用默认的拷贝构造函数,把。原创 2023-11-09 07:25:45 · 44 阅读 · 1 评论 -
六、C++ 构造函数(上)
构造函数就是和类名相同的函数,可以带参,也可以不带参private:char *name;int age;char *work;age = 0;return -1;age = a;return 0;return 0;C语言中 ( ) 一般对应函数的调用,定义了一个Person 类的对象,它会导致呢个函数被调用呢?导致类里面相应构造函数被调用,/* 调用两个参数的构造函数 *//* 调用无参的构造函数 */原创 2023-11-08 22:51:11 · 56 阅读 · 1 评论 -
五、C++ 重载、指针和引用
不能通过返回值的不一样重载函数,无法通过返回值来分辨调用哪个函数。函数名相同,参数不一样(类型、数量、顺序不一样)通过参数的不一样来调用不同的函数。怎么去分辨调用那一个函数呢?通过参数的不一样重载函数,原创 2023-11-08 21:57:36 · 54 阅读 · 1 评论 -
四、C++ 程序结构(下)
h/.cpp文件中//声明或定义函数int fun();...调用者源文件中1.直接使用:2.using声明//以后调用fun即表示a::fun3.using编译//以后调用fun,fun2即可。原创 2023-11-08 08:07:02 · 51 阅读 · 1 评论 -
三、C++程序结构(上)
----员工B实现Person类,person.h 供员工A使用, 在person.cpp中实现Person类。-----员工A实现 main.cpp,不关心函数的内部实现,只关心怎么去调用它,所以包含person.h即可。b. person.h 提供给main函数用,写main函数的人看这个头文件即可。两个cpp都实现了void printVersion(void),函数名称一样,返回值一样,参数一样,但内部实现不一样。c. person.cpp 实现函数。函数名称一样,返回值一样,参数一样,原创 2023-11-07 22:56:23 · 59 阅读 · 0 评论 -
二、C++ 访问控制
per.name = "zhangsan" 不能直接访问私有数据;把数据成员屏蔽起来,只能通过函数方法来设置;原创 2023-11-07 21:55:40 · 63 阅读 · 0 评论 -
一、C++ 面向对象、类的引入
C++入门学习,C++基础知识原创 2023-11-06 21:42:49 · 67 阅读 · 0 评论