c++primerplus学习笔记

121 阅读2分钟

c++代码常见问题

  1. 类中成员函数的形参类型最好命名为const &。为了避免复制操作、保证形参不被修改。eg:std::string & strs
  2. 项目中源文件引用头文件时用引号引用,eg:#include"bank.h"。否则会找不到头文件。
  3. 源文件对头文件中的类成员函数进行定义时,注意不要遗漏函数的返回类型,eg:void bank::show(){}
  4. 程序前未申明using namespace std;使用std::string声明,E:“未定义标识符string"。
  5. 类中构造函数的默认函数只能放在最后,形参参数一旦为默认值,后面的所有参数必须均为默认值。
  6. c2572:一是.h与.cpp定义的函数都包含形参列表中的默认参数。
  7. 二是默认参数只在.h中包含,但.h文件被包含了多次。
  8. 复制字符串的两种函数
  9. *strcpy_s(char *strDestination , size_t numberOfElements , const char strSource);//第二个参数指定字符串长度时记得strlen(s)+1
  10. char* strcpy(char* strDestination, const char* strSource);
  11. 类中的每个成员函数(包括构造与析构函数)都有一个this指针,this指向调用对象,要引用调用对象使用*this
  12. &取地址,*取指针所指的变量,类指针访问成员使用->,类变量访问成员使用.
  13. 获取数据时可以使用get和getline,get有三种形式:get()读取一个字符(包含空白字符),get(ch)读取一个字符存储在ch中,get(array,length,end)
  14. getline(字符数组or字符指针,字符数,结束符)//读一行字符直到读够字符或是读到结束符。
  • //golf.cpp
  • golf& setGolf(const char *name,int hc){...return *this}
  • //main.cpp
  • golf g; golf* p = &g; p = &p->setGolf(fullname,hc);
  • 返回类型是golf &,即类的引用,如果返回类型为golf,则返回的是复制p得到的新golf对象,取地址符&不能用在临时变量上,故而出现"E:"&"要求左值"。
  1. const int QUARTERS = 4; double sales[QUARTERS]; E0245 非静态成员引用必须与特定对象相对 第一行代码改写成static const int QUAETERS,因为数组的长度需要在编译时就显示,而非运行时分配。

  2. 函数定义前加const表示返回值类型是const,定义后加const表示不能修改类中的成员变量。

  3. 整数最大值最小值INT_MAX,INT_MIN。

  4. c++在传递函数参数时如果参数是数组,传递的是存储该数组地址的指针。

  5. 函数被const 标志后,不能修改成员数据&&只能调用被const标志的函数。

visual studio运行环境常见问题

  1. 调试时出现“找不到系统文件Projectx.exe/Debug.exe"的错误:新建.cpp与.h文件时没有在解决方案管理器中新建,直接在菜单栏中新建,文件并没有加入cpp项目中。