1. 函数传递的参数是从右向左计算各个参数表达式的值.
2. 禁止传值调用可以把拷贝构造函数设置为private 或 protected
3. 类的非静态成员函数指针用法
#include <iostream>
class A{
public:
int RetInt() {return 100;}
};
class B{
public:
int (A::*pFun)(void);
void Print(A &obj){
int val = (obj.*pFun)();
std::cout << "Val = " << val << std::endl;
}
};
int main(){
A a;
B b;
b.pFun = &A::RetInt;
b.Print(a);
}
note: 1. (obj.*pFun)() 2. &A::RetInt 此处必须显示使用取地址.
4.就算参数不同的同名函数处于不同的作用域,内部作用域会屏蔽外部作用域同名的函数.
5.全局作用域使用:: 例如 ::fun();
6.内联汇编 如:
_asm{
lea eax,A::print
mov v,eax
}
7.
A ReturnObject(){
A a;
return a;
}
int main(){
PTR p;
/*会运行错误
p=reinterpret_cast<PTR>(ReturnObject);
p();
*/
/* 下面的运行正确 */
p=reinterpret_cast<PTR>(ReturnInt);
p();
}
因为返回的对象较大时,主调函数会在栈上创建临时对象接收返回值,强行转换会导致内存泄露. 返回较小体积的时候,直接存放在寄存器中.
8.
#include <iostream>
int main(){
int i;
std::cout << "please input a number:";
std::cin >> i;
return i;
}
编译成Test.exe
.bat文件内容
@echo off
Test
if %errorlevel% == 3 echo third
if %errorlevel% == 2 echo second
if %errorlevel% == 1 echo first
pause
可以获取返回值
9.在函数声明和函数定义中,对参数默认值只能指定一次
10. 参数个数可变实现
void PrintAll(int n1, ...){
int *ptr;
ptr = &n1;
while(*ptr){
cout << *ptr << endl;
ptr++;
}
}
标准方法:
int SqSum1(int n1, ...){
va_list arg_ptr;/* 定义保存函数参数的结构 */
int nSqSum=0,n=n1;
va_start(arg_ptr, n1);// 使用宏va_start, 使argp指向传入的第一个可选参数,
while (n > 0){
nSqSum += (n * n);
n = va_arg(arg_ptr, int);//取出当前的参数,类型为int,如果不给出正确的类型,将得到错误的参数
}
va_end(arg_ptr);/* 将argp置为NULL */
return nSqSum;
}
分享到:
相关推荐
一款基于 Visual C++ 针对 C 语言程序,帮助提供单元测试环境的小工具:打桩、用例管理(目前暂不支持)、代码静态扫描,以及函数复杂度分析等等。本工具仅仅限于技术交流,不可以用于商业目的。
Symbian OS C++ Unit Testing Framework
Visual Unit(简称VU)是由国内知名的软件质效技术提供商——凯乐软件公司出品的一款C/C++单元测试、可视编程工具。其拥有可视化、自动化、高效易用等特点,深受广大用户的欢迎。 Visual Unit具有:让程序行为可视...
一款基于 Visual C++ 针对 C 语言程序,帮助提供单元测试环境的小工具:打桩、用例管理(目前暂不支持)、代码静态扫描,以及函数复杂度分析、覆盖率统计(MINGW)等等。本工具仅仅限于技术交流,不可以用于商业目的...
这是C/C++单元测试工具——Visual Unit3.0最新版的简明教程。
三维编程opengl MFC VC++
C C++ 单元测试 Visual Unit2
A lightweight unit testing framework for C++
VCL with sourcecode , Help and .exe[TMassConverter]);[TDistanceConverter]);[TTemperatureConverter]);[TTimeConverter]);[TForceConverter]);[TAngleConverter]);[RadioActivityConverter]);...
为武汉大学计算机学院的C++课程的讲义,为帮助大家学习,切不可牟利
English | 15 May 2017 | ASIN: B01MQDKPV8 | 590 Pages | AZW3 | 800.97 KB Over 100 recipes to help you overcome your difficulties with C++ programming and gain a deeper understanding of the working of ...
testngpp - next generation unit test framework for c/c++ testngpp - next generation unit test framework for c/c++
首先,我们导入了一个工程项目,并执行了内建规则 Generate Unit Tests,生成了测试用例。然后,我们执行了单元测试,并对测试结果进行了验证。在验证结果后,我们对修改后的工程代码执行了回归测试,并发现了断言...
为武汉大学计算机学院的C++课程的讲义,帮助大家学习,但切不可牟利
enforcement, static analysis, comprehensive code review, and unit and component testing to provide teams a practical way to ensure that their C and C++ code works as expected. C++test can be used both...
Visual Unit 3.beta18安装文件,有些童鞋上不了官网,只能上CSDN,在这里上传一份,方便下载。
最直接的uvc设备图像获取代码,没有显示,资源占用低,速度快,另外还有UVC Extension unit的通道数据获取,非常稳定好用
Viaul Unit是C/C++单元测试工具/嵌入式测试工具/集成测试工具。表格驱动,无须编写测试驱动和桩代码;支持快速完成航空标准(MC/DC);程序行为可视,支持快速编写复杂代码,提升开发效率。此版本安装后可测试自带的...