c与c++的一些常识
2017-03-06 17:13
127 查看
#include<cstdlib>
然后以语句
return EXIT_SUCCESS;
终止main()函数
c++和c的不同
1.在c++中可以使用命名空间,将标准命名空间分成好几个部分
2.在c++中可以对寄存器变量register变量取地址,而c中则不可以
3.在c++中的编译器会自动优化变量定义,会将高频率使用的变量有可能的定义到寄存器中,以提高运行速度
4.c++编译器拒绝重复定义相同名字的变量。
在c中很恐怖的事情,如没有类型的函数,竟然可以被编译通过,无形式参数的函数竟然可以接受参数传递,在c++中良好的回避了。
5.在c中三目运算符返回的是一个具体的数值,放在寄存器中,而在c++中返回的是一个变量,因此可以对表达式进行赋值
6.内联函数,inline函数:不能有循环体,不能有过多的判断语句,c++编译器会自动选择是否将其编译为内联函数
7.函数默认参数:int get(int a; int b = 2; int c = 5) 所有需要设计默认参数的参数必须写在参数列表最后。
8.占位参数;int get(int a; int b = 2; int ); 调用时需要写3个调用实参。用于重载后置++,还可以用于c++的后续语法扩展
9.函数重载;所有重载函数必须避免调用二义性。
10.构造函数与析构函数的执行顺序
11.c++编译器提供的类拷贝函数时一个浅拷贝函数
12.new,delete,自动调用构造函数和析构函数
13.静态成员变量与静态成员函数
14.普通成员变量:存储对象中,与struct变量一样具有相同的内存布局和字节对齐方式
15.静态成员变量:存储于全局数据区中
16.成员函数存储于代码段中
17.c++中类对象的普通成员函数都隐式包含一个指向当前对象的this指针
18.静态成员函数,成员变量属于类,但不存储在局部变量区
19.copy拷贝函数 类名(类 引用变量)这样的构造函数调用时机,a。用已知对象初始化新对象,实参传递形参时。
20.匿名对象赋值给已初始化对象调用重载运算符“=”;
21.类中的this指针被 类名 * const this 这样修饰,当成员函数加上const时,随意加在函数定义的什么位置,被const 类名 * const this这样修饰
22.友元函数,友元类,破坏了类的封装,但开了方便的后门,可以通过友元函数或友元类直接修改类的私有变量。
23.运算符重载函数名固定为 ”operator+“这种形式
24.运算符重载后置++时需要用到一个占位参数int
25.通过全局函数(友元函数)重载双目,单目操作符
或者通过成员函数重载 返回值类型 + operator(运算符)(参数列表);
26.函数返回值当左值,需要返回一个引用,即返回一个自身
27.逻辑与 逻辑或运算符可以被重载,但无法实现短路规则
28.template函数模板,类模板(容器)泛型编程
//参考财富目录下的c++类中的Vector类
29.类型转换:static_cast//编译器编译是会类型检查,静态类型转换
reinterpret_cast//强制类型转换
dynamic_cast//动态类型转换,子类和父类之间的多态转换运行时类型识别,多态的时候,
const_cast//去除const关键字
使用方式;例如:static_cast<int>(a);
30.c++异常处理语法
抛出异常
void fun(){
if(条件成立)
{
throw 变量;
}
.......
}
接受异常(在try里面调用函数fun)
try
{
fun();
}
catch(对应类型形参)
{
做处理;(也可以继续往外抛出该异常—throw;)
}
catch( ... )
{
其他类型异常接受的处理;
}
抛出异常接受异常是跨函数的,若此函数未接受异常则继续向上的函数抛出异常直到被接受为止,不然程序发生中断
异常机制常常用于像构造函数一样的没有返回值的函数判断函数执行状态
31.异常类型申明:写了就规范只可以抛出括号里面的异常类型:如果没写就可以抛出任何类型异常
void fun()throw(类型列表);
32.标准异常类 包含头文件:stdexcept
老祖宗类:exception
派生类:中完成虚函数 virtual const char * what();的重写
33.标准输入流对象cin
cin.get()//一次只能从缓冲区读取一个字符
cin.get(一个参数)//读一个字符到参数中
cin.get(三个参数)//可以读字符串
cin.getline()//可以读取空格
cin.ignore(n)//忽略缓冲区的头n个字符
cin.peek()//看看缓冲区有没有数据返回头个数据
cin.putback(参数)//把该参数的数据放回到缓冲区
34.对于输出流cout也有很多设置格式的函数查阅相关文档即可
35.输入输出文件流
include<fstream> 类ifstream 输入到程序 类ofstream输出到文件
fin(参数1:文件名)fout(文件名)
然后以语句
return EXIT_SUCCESS;
终止main()函数
c++和c的不同
1.在c++中可以使用命名空间,将标准命名空间分成好几个部分
2.在c++中可以对寄存器变量register变量取地址,而c中则不可以
3.在c++中的编译器会自动优化变量定义,会将高频率使用的变量有可能的定义到寄存器中,以提高运行速度
4.c++编译器拒绝重复定义相同名字的变量。
在c中很恐怖的事情,如没有类型的函数,竟然可以被编译通过,无形式参数的函数竟然可以接受参数传递,在c++中良好的回避了。
5.在c中三目运算符返回的是一个具体的数值,放在寄存器中,而在c++中返回的是一个变量,因此可以对表达式进行赋值
6.内联函数,inline函数:不能有循环体,不能有过多的判断语句,c++编译器会自动选择是否将其编译为内联函数
7.函数默认参数:int get(int a; int b = 2; int c = 5) 所有需要设计默认参数的参数必须写在参数列表最后。
8.占位参数;int get(int a; int b = 2; int ); 调用时需要写3个调用实参。用于重载后置++,还可以用于c++的后续语法扩展
9.函数重载;所有重载函数必须避免调用二义性。
10.构造函数与析构函数的执行顺序
11.c++编译器提供的类拷贝函数时一个浅拷贝函数
12.new,delete,自动调用构造函数和析构函数
13.静态成员变量与静态成员函数
14.普通成员变量:存储对象中,与struct变量一样具有相同的内存布局和字节对齐方式
15.静态成员变量:存储于全局数据区中
16.成员函数存储于代码段中
17.c++中类对象的普通成员函数都隐式包含一个指向当前对象的this指针
18.静态成员函数,成员变量属于类,但不存储在局部变量区
19.copy拷贝函数 类名(类 引用变量)这样的构造函数调用时机,a。用已知对象初始化新对象,实参传递形参时。
20.匿名对象赋值给已初始化对象调用重载运算符“=”;
21.类中的this指针被 类名 * const this 这样修饰,当成员函数加上const时,随意加在函数定义的什么位置,被const 类名 * const this这样修饰
22.友元函数,友元类,破坏了类的封装,但开了方便的后门,可以通过友元函数或友元类直接修改类的私有变量。
23.运算符重载函数名固定为 ”operator+“这种形式
24.运算符重载后置++时需要用到一个占位参数int
25.通过全局函数(友元函数)重载双目,单目操作符
或者通过成员函数重载 返回值类型 + operator(运算符)(参数列表);
26.函数返回值当左值,需要返回一个引用,即返回一个自身
27.逻辑与 逻辑或运算符可以被重载,但无法实现短路规则
28.template函数模板,类模板(容器)泛型编程
//参考财富目录下的c++类中的Vector类
29.类型转换:static_cast//编译器编译是会类型检查,静态类型转换
reinterpret_cast//强制类型转换
dynamic_cast//动态类型转换,子类和父类之间的多态转换运行时类型识别,多态的时候,
const_cast//去除const关键字
使用方式;例如:static_cast<int>(a);
30.c++异常处理语法
抛出异常
void fun(){
if(条件成立)
{
throw 变量;
}
.......
}
接受异常(在try里面调用函数fun)
try
{
fun();
}
catch(对应类型形参)
{
做处理;(也可以继续往外抛出该异常—throw;)
}
catch( ... )
{
其他类型异常接受的处理;
}
抛出异常接受异常是跨函数的,若此函数未接受异常则继续向上的函数抛出异常直到被接受为止,不然程序发生中断
异常机制常常用于像构造函数一样的没有返回值的函数判断函数执行状态
31.异常类型申明:写了就规范只可以抛出括号里面的异常类型:如果没写就可以抛出任何类型异常
void fun()throw(类型列表);
32.标准异常类 包含头文件:stdexcept
老祖宗类:exception
派生类:中完成虚函数 virtual const char * what();的重写
33.标准输入流对象cin
cin.get()//一次只能从缓冲区读取一个字符
cin.get(一个参数)//读一个字符到参数中
cin.get(三个参数)//可以读字符串
cin.getline()//可以读取空格
cin.ignore(n)//忽略缓冲区的头n个字符
cin.peek()//看看缓冲区有没有数据返回头个数据
cin.putback(参数)//把该参数的数据放回到缓冲区
34.对于输出流cout也有很多设置格式的函数查阅相关文档即可
35.输入输出文件流
include<fstream> 类ifstream 输入到程序 类ofstream输出到文件
fin(参数1:文件名)fout(文件名)
相关文章推荐
- 关于一些C C++常识
- 关于C、OC、C++、OC++、Swift的一些常识
- java与c/c++进行socket通信的一些问题(2)
- C++中的文件输入/输出(6):一些有用的函数
- C++ 的一些免费库
- 关于C++的一些细节[四:循环,分支语句,关系表达式,关系运算符]
- chmod ------ 入门的一些常识
- 关于C++的一些细节[五:函数-基础]
- C++ 的一些免费库
- 关于C++的一些细节[一]
- 关于C++的一些细节[三:复合类型]
- 关于Borland C++BuilderX的一些问题的回答
- C++的一些基本功,包括对常量成员函数的一些特殊说明
- C/C++中的整型常识
- c++常识
- MAX SDK的INode的变换矩阵,以及Object的一些常识
- 刚才在论坛上看到的一些学习C++的东东,可能对初学有点用
- C/C++开发过程中的一些bug
- java与c/c++进行socket通信的一些问题(1)
- 关于C/C++程序的一些规范(2005-5-10)