我是从开学开始学c++
现在已经及其混乱
整理一下思路
总结一下与c的不同
1.输入用cin,输出用cout
字符串:cin.getline(name,20) 将20个元素读入name
cin.get(name,size);
cin.get(); //第一行有换行符,在这里读取,不然下一个就只会读取换行符
cin.get(other,size);
以上可以用 cin.getline(name,size).getline(other,size); 代替
string: cin>>st1;
cout<<st1;
strcpy(st1,st2); //2复制到1
strcat(st1,st2); //将2附加到1末尾
strlen(st1); //st1的长度
new是堆或者自由存储区分配,常规变量是在栈分配。
自动存储是常规变量存储,函数调用时产生,结束时消亡,静态变量整个执行期间的变量(static),动态存储就是用new和delete。
vector是动态数组的替代品 array是定长数组的替代品。
strcmp(str1,str2) 如果相等返回false,不相等返回true。
文件输入,使用头文件fstream,ofstream命名,将其关联,例如cout,然后就能使用"<<",使用完之后用close()关闭,读取把o改成i。
引用变量: int a; int & b=a;//int & 指的是指向int的引用,引用和指针能swap函数值。
ofstream是ostream的派生类,派生类继承基类方法,基类引用指向派生类对象
函数执行基本上相同的任务,但是返回值的数据形式不同的时候用函数重载
函数模板: template<Typename T> 函数模板自动完成重载函数的过程
默认情况在c++的链接性为外部,可在文件中共享,但是使用static关键字,他的链接性在内部,被限制在定义他的文件中
五大内存分区:堆(手动申请释放new)、栈(函数参数记局部变量)、全局/静态存储区(静态变量全局变量和常量)、自由存储区和常量存储区(字符串常量和常变量)。
c++标识符的作用域分为三级:代码块({…}和函数体)、类域和全局作用域,在类作用域和全局作用域之间,C++标准又添加了名字空间域这一个作用域级别。不能在命名空间的定义中声明(另一个嵌套的)子命名空间,只能在命名空间的定义中定义子命名空间。namespace a=b; //重定义命名