c++概念的总结

【描述c++ 的编译过程】

.cpp ->编译器-> .s 汇编代码->汇编器->目标代码[.o]->连接器->可执行程序

其中,连接器的作用:链接库文件,链接其他目标文件。

【Terminology】

explicit C(int x);

explicit B(int x = 0, bool b = true);

// 可以阻止用来执行隐式类型的转换(implicit type conversation),任然可以显示转换。

copy 构造函数,“以同型对象初始化自我对象”, copy assignment 操作符号“从另一个同类型对象中拷贝值到自我对象中”

class Widget{

public:

    Widget();// default 构造

    Widget(const Widget & rhs);// copy 构造函数。

    Widget & operater = (const Widget & rhs) ;

}

c++ 的特点: 多重范型编程语言,支持过程形式,面向对象,泛型编程,元编程形式,

面向对象: 构造函数,析构函数,封装(encapsulation)。继承,多态,virtual 函数(动态绑定)。

虚函数,在继承中,相当于只继承一个接口,函数的实体,要在derived class中定义。

             允许在派生类重新定义与基类同名的函数,并且通过引用来访问基类和派生类中的同名函数。

函数的覆盖:基类和派生类同名,参数和返回值相同的时候,并且基类为虚函数,则派生类同名的override基类

多继承:一个类有多个基类:class Singer waiter:public waiter;public singer

多继承的问题:从两个基类继承到同名的函数,可能会先菱形继承。

常量指针,指针常量

const char *p =greeting; // const data

char const *p = greeting; // const data

char * const p = greeting; //const point

const char* const p = greating;

*和&

#include<iostream>
using namespace std;

int main(){
     int a = 123;
      //&a表示a在内存中的地址,也就是123在内存中的地址
      cout<<"a: "<<a<<endl<<"a's address:"<<&a<<endl;
     //此时p是一个指针,指向a所在的位置
      int *p=&a;
      out<<"p: "<<p<<endl;
     //声明p之后,在p之前添加*表示p指向内存的值
     cout<<"p's value: "<<*p<<endl;
    //同时p也是 一个变量,在内存中也有一个地址储存它,但其地址不是a的地址
     cout<<"p's address: "<<&p<<endl;

     //试试*&组合使用是什么效果
     cout<<"*&p: "<<*&p<<endl;
    //&p是一个内存地址,*&p表示&p指向地址内存空间的值,在这里表示a的地址

    cout<<"**&p: "<<**&p<<endl;
    //刚才我们已经知道*&p是a的地址,那么**&p就表示a的值

}

int * p = null; //p 指向一个地址单元 p->内存地址单元,& p = 表示p的内存地址值, 改变& p,也就改变指针所指内容,相当于指针的指针。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值