#include<iostream>
#include<vector>
#include<list>
//1. 第二个类型参数的缺省值是vector<T>
template<typename T, typename T2 = std::vector<T> >
class MyClass {
public:
T2 data;
MyClass() {
std::cout<<" type 1. \n";
}
void setData(){
for(int i=0;i<10;i++){
data.push_back(i);
}
}
void outPutData(){
for(int i=0;i<10;i++){
std::cout<<data.back()<<std::endl;
data.pop_back();
}
}
};
int main() {
MyClass<int> c1; //第二个类型参数是vector<int>
MyClass<int,std::list<int> > c2; //第二个类型参数是list<int>
c1.setData();
c1.outPutData();
c2.setData();
c2.outPutData();
return 0;
}
分享到:
相关推荐
包括C++源程序文件的缺省扩展名、目标文件的缺省扩展名、可执行文件的缺省扩展名、程序中主函数的名字、C++程序的基本模块、可用作C++语言用户标识符的一组标识符、函数重载、函数模板、函数调用方式、内联函数、...
keyword-only参数定义原理解析形参的混合使用可变位置参数和缺省参数位置参数、可变参数、缺省参数规约解构实参解构字典解构总结练习练习1练习2keywor
若函数具有多个形参,则缺省形参值必须自右向左连续地定义,并且在一个缺省形参值的右边不能有未指定缺省值的参数。这是由于 C++语言在函数调用时参数是自右至左入栈这一约定所决定的。 七、函数重载 函数重载:...
15. 模板的使用:模板可以有多个参数,可以使用int、double等类型修饰符,模板实参在某些情况下可以省略。正确答案是B)所有的运算符都可以通过重载而被赋予新的含义,因为这描述的是运算符重载,而非模板。 16. ...
雨田单元测试系统是一款专业国产测试软件。...3 解决函数调用实参分析中存在的问题 4 处理了构造函数中变量应用 5 解决路径搜索算法中存在的处理循环的错误 6 更新了continue数据 雨田单元测试系统截图
1. C++源程序文件的缺省扩展名为cpp,目标文件的缺省扩展名为obj,可执行文件的缺省扩展名为exe。 2. 程序中主函数的名字为main,C++程序的基本模块为函数。 3. 可用作C++语言用户标识符的一组标识符是任意标识符...
缺省参数值从右向左定义,且右边不能有未指定默认值的参数,这是C++函数调用约定决定的。 8. **函数重载** 允许同一作用域内存在多个同名函数,通过参数列表不同来区分,编译器自动选择最佳匹配。 9. **函数模板...
类模板实例化时,编译器将根据给出的模板实参生成一个类 - C. 在类模板中的数据成员具有同样类型 - D. 类模板中的成员函数没有返回值 - **解析**: 类模板提供了一种编写通用类的方式,允许用户在实例化时指定...
A5下载站向大家推荐一款非常不错的静态分析工具软件——雨田静态分析系统。雨田静态分析系统依据MISRA为依据,可以对.c文件进行...5 细化了函数调用的实参的变量分析(以前是单一处理为引用) 雨田静态分析系统截图
4.4 函数参数缺省:允许在函数声明时为某些参数提供默认值,使得调用时可以省略这些参数。这提高了代码的灵活性和易用性。 4.5 函数重载:函数重载是指在同一个作用域内,可以有多个同名函数,但它们的参数列表不同...
7. 动态对象数组:用new申请类的动态对象数组时,需要匹配到无参构造函数或缺省参数构造函数。 8. 静态数据成员:静态数据成员在类外初始化,并由所有类对象共享。 9. if...else配对规则:C++规定else总是与最近未...
- **知识点**: 缺省参数允许函数在没有提供对应实参时使用默认值。 - **举例**: 函数定义时可以指定参数的缺省值,例如 `void func(int a = 10)`。 ### 14. 值传递与引用传递的区别 - **知识点**: - 值传递是将...
- A选项:在调用模板函数时,如果能够从参数推导出模板参数的类型,则可以省略模板实参; - B选项:可以使用基本类型修饰符声明模板参数; - C选项:class和typename关键字在声明模板参数时可以互换使用; - D...
文档中的单选题42给出了定义:“下列(C)的调用方式是引用调用”,这里的C指的是“形参是引用,实参是变量”。 4. **内联函数(Inline Function):** 这种函数被编译器直接嵌入到调用处,可以减少函数调用的开销。...
9. **缺省参数**:函数可以带有缺省参数,方便在调用时省略某些参数,但缺省参数必须从右向左设定。 10. **函数重载错误**:函数重载要求函数名称相同,但参数列表必须不同,包括参数个数、类型或顺序。返回类型不...
9. **缺省参数**:函数可以带有缺省参数,允许调用者不提供某些参数的值。正确声明应为`int Fun(int *p, int y=2, int z=3);`。 10. **函数重载**:重载函数的参数列表必须不同,返回类型不能作为区分标准。`const`...
- 类模板和模板类:模板用于创建泛型代码,类模板生成特定类型的类,模板类是实例化的结果。 7. **系统概念**: - 线程和进程:进程是资源分配的基本单位,线程是执行的基本单位,一个进程中可以有多个线程。 - ...
值传递是将实参的副本传给形参,而地址传递则是通过传递实参的地址来实现对实参的直接修改。 2. **this指针**:当成员函数被调用时,`this`指针指向调用它的对象,用于访问对象的成员变量。 3. **作用域分隔符**:...
15. 模板参数可以是类型参数,也可以是常量表达式,但不能直接使用类型如int或double来声明模板参数,B选项是错误的。 16. 要进行C++流操作,需要包含`iostream`头文件,这是C++标准输入输出库的基础,所以A是正确...
- **应用场景**:在模板参数推导中,编译器可以根据实参自动推导出模板参数。 ### Default 预设/缺省/默许 - **定义**:默认值是指如果没有指定的话将会使用的值。 - **应用场景**:在函数定义时可以为参数设置...