类的成员函数是一个模板函数, 但把这个模板成员函数的定义放在类的外面,就怎么都通不过.
//类的成员函数是一个模板函数, 但把这个模板函数的定义放在类的外面,就怎么都通不过.
class type_a{ //类的接口在类中写.
public:
template<typename T1,typename T2> void paixu(T1 **p,const int size,T2 T1::*pt); //排序,T1是该类内部定义的数据类型, T2是某种普通数据类型
string str;
int val;
};
void type_a::paixu<typename T1,typename T2>(T1 **p,const int size,T2 T1::*pt) //成员函数的实现写在类的外面. 但编译通不过. 不知道错在哪里
{}
------------------Configuration: - Win32 Release--------------------
Compiling...
mian.cpp
E:\我的文档\Visual C \StoClass_2.h(1104) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
执行 cl.exe 时出错.
mian.obj - 1 error(s), 0 warning(s)
class type_a{ //类的接口在类中写.
public:
template<typename T1,typename T2> void paixu(T1 **p,const int size,T2 T1::*pt); //排序,T1是该类内部定义的数据类型, T2是某种普通数据类型
string str;
int val;
};
void type_a::paixu<typename T1,typename T2>(T1 **p,const int size,T2 T1::*pt) //成员函数的实现写在类的外面. 但编译通不过. 不知道错在哪里
{}
------------------Configuration: - Win32 Release--------------------
Compiling...
mian.cpp
E:\我的文档\Visual C \StoClass_2.h(1104) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
执行 cl.exe 时出错.
mian.obj - 1 error(s), 0 warning(s)
...全文
相关推荐
C++模板编程中只特化模板类的一个成员函数
在C++编程中,模板是一种强大的工具,可以用于创建泛型代码,允许程序员编写一次代码,然后在多种数据类型上复用。然而,在某些特定情况下,我们可能希望为某个特定类型的模板实例提供特殊的实现,这就是模板特化
如何让类的成员函数作为回调函数
定义一个类,包含需要作为回调的成员函数。2. 创建一个非成员函数作为中间层,该函数使用`__stdcall`调用约定。3. 在中间函数中,通过汇编指令设置ECX寄存器为类对象的地址。4.
在C++泛型编程中如何只特化类的某个成员函数
**成员函数对象(Function Objects)**: - 创建一个模板内的嵌套类,作为成员函数对象,然后通过特化这个成员函数对象来达到特化某个成员函数的效果。
c++ 类的声明和定义
四、类的声明形式类的声明形式可以总结为:```class 类名 { private : 私有的数据和成员函数; public : 公用的数据和成员函数;};```在类体中,private 和 public
C++在成员函数中使用STL的find_if函数实例
因为成员函数需要访问类的内部状态,所以在`find_if`中直接传递成员函数会导致编译错误,因为成员函数需要一个隐含的`this`指针来调用。


