C++函数可变参数实现

原创 2013年07月08日 16:23:03

#include <iostream>
#include <cstdarg>

int add(const int a,...); //函数原型

int main()
{
	using std::cout;
	using std::endl;

	cout << "\t可变参数函数功能验证程序\n"<< endl;
	cout << "五个实参调用add求和:"<< add(5,1,2,3,4,5)<< endl;
	cout << "九个实参调用add求和:"<< add(9,1,2,3,4,5,6,7,8,9)<< endl;
}
//可变参数函数,形参列表中的省略号(也就是三个英文句点:...)表明可以传递任意数量的实参
int add(const int ca,...) //第一个参数指定了参数列表中实参的个数
{
	if (ca <= 0) //判断参数列表中参数的数量
		return 0;

	int sum = 0;
	va_list pArg; //声明一个va_list类型的参数列表指针,它可以依次指向各个实参
	va_start(pArg,ca);//va_start初始化pArg,设定它指向第一个实参,ca辅助pArg确定第一个实参的位置


	for (int i=0; i<ca; i++)//使用for循环取出实参列表中的每一个值
	{
		sum = sum + va_arg(pArg,int);//va_arg返回pArg指向的实参的值,然后使pArg自增,指向下一个实参,int是实参的类型
	} //va_arg的第二个参数int还能影响pArg的自增,如果它配置的不正确,将会出现错误的结果


	va_end(pArg); //重置参数列表指针为空

	return sum;
}

c++虚函数实现机制及内存模型

前言 大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函...
  • mightySheldor
  • mightySheldor
  • 2015年11月19日 15:35
  • 1930

C++中虚函数是怎样实现的

C++中虚函数是怎样实现的
  • A_LMY
  • A_LMY
  • 2016年03月04日 16:21
  • 720

C++ virtual函数 实现机制

C++ 虚函数表解析前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“...
  • a819825294
  • a819825294
  • 2016年07月23日 10:16
  • 1763

C++函数模板及实现原理

C++为我们提供了函数模板机制。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。 凡是函数体相同的函数都可以用这个模板来代替...
  • baidu_28312631
  • baidu_28312631
  • 2015年08月25日 12:50
  • 5828

c++实现split函数

今天工作因原因,需要实现一个split的功能,以前也做过,但一直没有把他记下来,所以又重新写了一次。这次做个笔记以备后用,各位网友感兴趣也可以直接拿来用过。 例子:  一个这样的字符串:“...
  • ybhjx
  • ybhjx
  • 2016年03月16日 09:34
  • 486

【C++拾遗】 C++虚函数实现原理

原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50454819我们知道,与C语言相比,C++在布局和存取时间上的额外开销主要是由虚...
  • Xiejingfa
  • Xiejingfa
  • 2016年01月04日 15:47
  • 1441

C++函数编译原理和成员函数的实现

转载自:http://c.biancheng.net/cpp/biancheng/view/2996.html点击打开链接 从上节的例子可以看出,对象的内存模型中只保留了成员变量,除此之外没有任...
  • chengonghao
  • chengonghao
  • 2016年04月01日 09:33
  • 3705

C++中类成员函数未实现,是否能够编译链接通过?

在写代码中经常发现有些类中的成员函数(包括nonvirtual func, virtual func and pure virtual func, static func)并未实现,但仍然能够正常的编...
  • Lostyears
  • Lostyears
  • 2015年07月16日 16:14
  • 1241

C++回调函数(2)--实现回调机制的几种方式

(1)Callback方式 Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型。比如下面的示例代码,我们在Dow...
  • birdflyto206
  • birdflyto206
  • 2016年04月11日 23:19
  • 776

C/C++——strcpy函数的 几种 实现 和 详细 解析

C/C++——strcpy函数的实现 和解析 题目:      已知strcpy函数的原型是:          char * strcpy(char * strDest,const char * s...
  • wconvey
  • wconvey
  • 2014年03月13日 07:39
  • 28945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++函数可变参数实现
举报原因:
原因补充:

(最多只允许输入30个字)