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