您的位置:首页 > 编程语言 > C语言/C++

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(文件名)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: