C++学习笔记

虽然有一定的基础,但是C++实在是细节繁多,有时候看似读得通源码,但实际上具体的实现细节上仍然会出现不清楚的地方。

最近准备重新过一遍《C++ Primer》,这篇博客记录一些对个人有启发的知识点:

1.void main()  rand(void)   void代表该函数没有返回值,或者该函数不接受任何返回值,由于不返回值,所以不能将该函数调用放在赋值语句或其他表达式中,使用单纯的函数调用

2.return  函数声明之后,该函数的返回类型确定, 在main()函数中调用函数时,return即为调用时使用的值。

3.const 声明常量 比#define好的地方 (1)明确制定类型 (2)使用C++的作用域规则将定义限制在特定的函数或文件(3)可以将const用于更复杂的类型。

4.定义指针 int *p      int* p 对编译器来说是完全一样的,但是int* p,k;就是定义了一个指针p和一个int变量k

5.     ?:运算符, 如果表达式1为真,则输出表达式2的值,如果表达式1为假,则输出表达式3的值

        ep:     5 > 3  ? 10 : 15     //   5 > 3为真,则返回表达式2的值 10    

        ep:     3 > 5 ? 10 : 15     //    3 > 5为假,则返回表达式3的值 15        c = a  > b ? a : b    a = 25 b = 28 则 c = 28

6.  读写文件使用 outFile.open("carinfo.txt")  然后将outFile当作cout用,inFile.open("carinfo.txt")  然后将inFile当作cin用

7.  二维数组,ar2[r][c] ==  *( *( ar2 + r ) + c )    

ar2                        第一行,有四个整型数组量

ar2 + r                   第r行,有四个整型数组量

*( ar2 + r )             指向第r行的第一个整型数组量

*( ar2 + r ) + c        指向第r行的第c个整型数组量

*( *( ar2 + r ) + c)   第r行的第c个整型数组量的值

8. 指针与数组, 普通整型指针, int k, int * p ;   其中 &k 与 p 等价, k 与 * p 等价

对于数组指针   char * pstr = new char[ n + 1] ;   pstr[n] 与 *(pstr + n) 等价

9.引用与指针用作函数参数  指针用作函数参数  void set_pcp ( free_throw * pt)  set_pcp( &one )  free_throw为定义好的结构体;

引用用作函数参数  void  set_pc ( free_throw & ft )  set_pc ( one );   这两种方式是等价的  one 与 ft/pt 同时变化 引用。

10.返回引用与返回值的区别  free_throw & accumulate ( '''  )      ///返回给target的引用  即原始的team  改变

free_throw  accumulate ( free_throw & target, const free_throw  &source )     ///返回给target  即 team的拷贝  team不变

11. 面向对象编程(oop)的特性 :  

抽象 / 封装和数据隐藏 / 多态 / 继承 / 代码的可重用性 。  class 默认访问类型 private /  struct 默认访问类型 public

12.  构造函数和析构函数       Stock garment ( "Fury" , 50 , 2.5 )  /等价与/ Stock garment = Stock ( "Fury" , 50, 2.5 )

析构函数  就像new 之后用delete释放内存一样,   ~Stock()  即为释放类内存的析构函数。

例如: 

Stock::~Stock()

{

      cout << "Bye" << enl ;  // or nothing left here is fine.

}

13. this指针   top = stock1.topval(stock2);   其中 const Stock & topval ( const Stock & s) const;   显式访问对象s / stock2  隐式访问对象stock1 / 没有别名,  因此这里需要使用 this 指针 this -> total_val  例如
 

const Stock & Stock::topval ( const Stock & s ) const
{
    if ( s.total_val > total_val )  // 这里的total_val即为隐式调用的Stock1
        return s;
    else
        return *this;  // 如要返回Stock本身,更改其值  Stock1咩有别名 使用this指针。
}

14. 函数重载/函数多态 定义多个名称相同但特征标不同的函数  比如一个大类 鸡  特征标 鸡a = 火鸡  鸡b = 公鸡...

未完待续....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值