LearnC++
Ran1366
这个作者很懒,什么都没留下…
展开
-
C++命名空间
命名空间是为了避免名字定义冲突的,标准库定义的所有名字都在命名空间std中, 当我们想使用来自命名空间中的名字时, 需要声明该名字属于哪个命名空间, 比如想使用命名空间std中的cout, 就需要配合作用域运算符"::", 如 std::cout不使用std命名空间的代码:#include <iostream>int main(){ int a, b; std::cout ...原创 2019-04-23 22:06:04 · 146 阅读 · 0 评论 -
C++泛型编程:模板
泛型编程是编写与类型无关的代码,而模板是泛型编程的基础在学习C/C++过程中, 我们可能常用几种函数, 由于传入的参数不同, 需要进行不同的函数的编写, 在C语言中需要根据参数和功能的不同重新编写新的函数, 而在C++中有函数重载这样的机制,一定程度上解决了问题,但是重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型出现时,就需要增加对应的函数代码的可维护性比较低,一个出错可能所...原创 2019-07-12 17:08:42 · 220 阅读 · 0 评论 -
类的6个默认成员函数
一个空类class empty { //什么都没有...}看起来什么都没有,实际上它自动生成了6个默认成员函数;构造函数析构函数拷贝构造函数赋值运算符重载普通对象取地址运算符重载(很少自己实现)const对象取地址运算符重载(很少自己实现)1.构造函数如果用户不显式定义构造函数,编译器会默认生成一个无参的构造函数类名()//生成的无参数的构造函数{}如果...原创 2019-05-30 20:42:35 · 216 阅读 · 0 评论 -
C++this指针
先贴上一段代码class Alien { public: Alien(int age , string home) { _age = age; _home = home; } void say() { cout << "I'm alien" << "...原创 2019-05-25 21:43:01 · 183 阅读 · 0 评论 -
计算类的大小(结构体内存对齐)
类的对象中只保存成员变量,而成员函数保存在公共的代码段计算类的大小class A{ //有成员函数和成员变量 void func(){} int a;};class B{ //只有成员函数 void func(){};};class C{ //空类};sizeof( A ) = 4sizeof( B ) = 1;sizeof( C ) = 1;一个类的...原创 2019-05-25 18:21:06 · 322 阅读 · 0 评论 -
C++初识类和对象
类和结构体C语言中有结构体这种自定制类型,在C++中,有一种兼容C语言结构体并且功能更加强大的东西—类在C语言中,结构体内只能定义变量, 而在C++中不仅能够定义变量,还能定义函数struct Alien{ void say() { cout << "I'm an alien" << endl; } int _age; string _home;}...原创 2019-05-25 16:38:57 · 190 阅读 · 0 评论 -
C++缺省参数和引用
缺省参数缺省参数就是在声明一个函数时, 你事先为它设置默认值, 当传参的时候, 如果你没有为缺省的参数传值,就使用默认值,缺省函数的使用规则:1.缺省的参数只能是常量且只能从最右边开始,如果有多个缺省,它们必须连续void func(int a, int b, int c = 0);//正确,缺省在最右边void func(int a = 0, int b, int c);//错误,只能...原创 2019-05-11 11:24:18 · 1008 阅读 · 0 评论 -
为什么C++支持函数重载
函数重载的概念:函数重载是C++语言的一个重要特性在同一作用域,多个函数在函数名相同的情况下,形参列表不同的就构成重载例如:int &add(int a, int b){ static int c = a + b; return c;}double &add(double a, double b){ static double c = a + b; retu...原创 2019-05-11 10:19:59 · 447 阅读 · 0 评论 -
C++的发展历史
C++的诞生 C++是一门应用广泛的编程语言, 最初是Bjarne博士等人试图去分析UNIX的内核的时候, 没有合适的工具,在解决这个问题的过程中, Bjarne博士开始思考是不是要开发一种新的语言,当时贝尔实验室对这个想法很感兴趣,就让Bjarne博士等人组成一个开发小组,专门进行研究。 当时C++叫做"C with Class", 直译过来就是"有类的C", 由于当时C语言的地位是当时...原创 2019-05-10 16:44:02 · 1354 阅读 · 0 评论 -
菱形继承
菱形继承下图展示了一个简单的菱形继承(假设是public方式继承)菱形继承的问题数据冗余和二义性上图B和C都继承了A,B和C的数据中除了有自己的成员变量外,还有继承自A的成员:_a,此时D同时继承了B和C,那么D中除了自己有的成员变量以外,还包含了继承自B和C的成员变量,此时D中就同时有_b,_c,_d,_a 那么_a究竟是B中的还是C中的呢,而且多继承使得数据大量的重复堆积,使得派生类...原创 2019-08-22 00:33:12 · 217 阅读 · 0 评论