Skip to content
noBBjustGan edited this page Aug 23, 2018 · 13 revisions

CPP

指针和引用

引用:& a 不占内存,和被应用的对象使用的是同一块内存

指针:int * p, 正常情况下占4个字节,是一个指针变量 类型,和被指向的对象使用单独的两块内存空间

多文件编译

          / a.h <—- a.cpp  

main.cpp - b.h <—- b.cpp  

          \ c.h <—- c.cpp

相应的.cpp文件 include 对应同名的.h文件。

.h头文件里放函数的声明 和全局变量,局部变量和函数的实现放在.cpp文件中, 应尽量减少全局变量的使用,在需要用到的位置定义


#ifndef abc_h

#define abc_h

typing code right here

#endif

  • 头文件中使用以上代码 防止头文件重复包含

Class&Struct

类和结构体

  • class 的默认成员访问权限是 private

  • struct 的默认成员访问权限是 public

  • using namespace std

使用命名空间也可以写在需要使用它的函数内部,避免使用全局变量,增加开销

class Stock
{

private:

      std::string company;                                    
      long shares;                                            
      double share_val;                                       
      double total_val;                                       
      void set_tot(){total_val = shares * share_val;}
      直接在类中实现的函数,将被定义为内联函数  

public:

     void acquire(const std::string & co, long n, double per);
     void buy(long num,double price); 
     void sell(long num, double price);                      
     void update(double price);
     void show();

};

默认构造函数

创建对象时未提供初始值时,拿来创建类对象用
//like this
Stock abc; //uses the default constructor

//就像 int x; 这样只定义 未赋值是一样的概念

只有当类中未定义 任何默认构造函数 时,才允许使用 默认构造函数

推荐:初始化对象方式 Stock::Stock() { company_ = "no name"; shares_ = 0; share_val_ = 0.0; total_val_ = 0.0;

}

Clone this wiki locally