gpt4 book ai didi

C++ 链接对象的文件 (G++)

转载 作者:行者123 更新时间:2023-11-30 04:17:53 26 4
gpt4 key购买 nike

class.h

#include <iostream>
#include <stdint.h>

using namespace std;

template <typename T>
class CIntegerType {
public:
void Show ( void );

private:
T m_Data;
};

类.cpp

#include "class.h"

template <typename T>
void CIntegerType<T> :: Show ( void ) {
cout << m_Data << endl;
}

main.cpp

#include "class.h"

int main ( void ) {
CIntegerType<uint32_t> UINT32;

UINT32 . Show ();

return 0;
}

此命令返回:

g++ -Wall -pedantic -c main.cpp

g++ -Wall -pedantic -c class.cpp

g++ -Wall -pedantic -o class.o main.o

main.o:在函数“main”中:main.cpp:(.text+0x11): 未定义对 'CIntegerType< unsigned int>::Show()' 的引用collect2: ld 返回 1 个退出状态

最佳答案

尝试将模板实现放在头文件中。

参见:Why can templates only be implemented in the header file?

关于C++ 链接对象的文件 (G++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16800983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com