C++常见问题(二)——虚函数、类与结构、引用与值传递
来源:互联网 发布:图像分割算法代码 编辑:程序博客网 时间:2024/06/08 07:36
一 文件输入输出的方式
C++定义了ifsteam、ofstream和fstream 3种类型以用来支持文件的输入输出。
二 异常
异常就是程序运行时出现的不正常,可能会导致系统无法正常运行甚至停止运行等严重的情况。
异常处理的方法包括两个方面:
(1)throw表达式,错误检测部分使用这种表达式来说明遇到了不可处理的错误,可以说,throw引发了异常条件。
(2)try块,错误处理部分使用它来处理异常。
try //功能代码{ program-statements}catch (exception-specifier) //捕获异常{ handler-statements //处理语句}catch (exception-specifier){ Throw; //抛出异常}
三 宏定义
宏定义的语法格式: #define <标识符><字符串>,其中的标识符就是所谓的符号常量,也称为”宏名”。预处理工作也叫宏展开。宏定义不占用内存和编译时间。
#define A_TESTING_MACRO(n) printf("a testing macro with a int argument n=%d !\n",n)
四 存储空间
使用new和delete来分配和释放存储空间。
使用方式:指针变量=new 数据类型;new使用后处理的三个事情,计算指定数据类型需要的内存空间大小;正确的指针类型;分配内存。
int* p;p = new int; //指针p直接指向由new分配而来的新内存空间//p中仍然是存储了一个变量的地址,但新分配的内存空间,像是一个“临时建筑物”*p = 100;cout << *p <<endl;delete p; //释放内存空间system("PAUSE");
五 虚函数与纯虚函数
虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public,在基类的类定义中定义虚函数的形式为:
virtual 函数返回值类型 虚函数名(形参表){ 函数体}
纯虚函数是一种特殊的虚函数,一般格式:
class <name>{ virtual <type><function name>(<参数表>)=0;}
六 引用与值传递的区别
值传递将要传递的值作为一个副本传递,在函数调用时,实参把它的值传递给对应的形参,方法执行中实参的值不会发生改变。
void Func2(int x){ x = x + 10;}int n = 0;Func2(n);cout<<"n="<<n<<endl; //输出结果为n = 0
void Func2(int &x){ x = x + 10;}int n = 0;Func2(n); //引用传递cout<<"n="<<n<<endl; //输出结果为n = 10
七 类和结构有什么区别
类定义的一般形式:
class Name{ public: 类的共有接口 private: 私有的成员函数 私有的数据成员定义}
结构定义的一般形式如下:
struct test{ float a; int b;};
八
成员变量访问:通过声明private、protect和public3种访问权限来对成员变量进行访问控制的。
形参实参的区别:形参是函数定义或者声明时的函数形式参数,形参表制定了函数参数的个数和数据类型,实参是函数调用时传递给函数的参数,传递时要与形参一一对应。
- C++常见问题(二)——虚函数、类与结构、引用与值传递
- 纯c与c++:函数传递-指针/引用,typdef struct + 结构体/枚举
- C 与 引用传递
- 图解C/C++中函数参数的值传递、指针传递与引用传递
- 图解C/C++中函数参数的值传递、指针传递与引用传递
- 指针与引用(函数形参的值传递,引用传递,指针传递)
- PHP-变量(二)(变量值传递与引用传递,及值传递转换成引用传递)
- C语言函数传递与值传递
- C语言——结构体与指针引用&结构体数组与指针引用
- 彻底搞定C指针-——第五篇:函数参数的传递(值传递、地址传递、引用传递)
- C或C++中函数的参数传递——值传递、指针传递、引用传递
- 引用与函数(C++)
- java基础学习——值传递与引用传递
- 值传递与引用传递
- 值传递与引用传递
- 值传递与引用传递
- 值传递与引用传递
- 值传递与引用传递
- JavaBean中DAO设计模式介绍
- <s:if>标签和<c:if>标签的一点区别
- ios layer shadow 属性设置
- JVM垃圾收集器异同
- 总结
- C++常见问题(二)——虚函数、类与结构、引用与值传递
- iOS学习--ViewController之间的跳转
- Java中如何封装自己的类,建立并使用自己的类库?
- 通过Power Shell 在中国区Azure部署Azure SQL Data Warehouse
- 详谈京东的商品搜索系统架构设计
- leetcode.208. Implement Trie (Prefix Tree) 字典树
- MVC 利用枚举数据构造下拉框Select数据源
- 【第六章】 AOP 之 6.8 切面实例化模型 ——跟我学spring3
- 重定向和转发区别