我的目的是查找調用某個函數的所有地方。 因此,我從中定義了新的類,並使其不可訪問。 但我沒有定義該方法,並且出現鏈接錯誤。在Class中聲明但未定義的虛方法
下面是代碼:
A.hpp:
#ifndef _A_HPP
#define _A_HPP
class _declspec(dllexport) A
{
public:
virtual void f1();
};
class _declspec(dllexport) B: public A
{
private:
void f1();
};
#endif
A.cpp:
#include "A.hpp"
void A::f1(){}
program.cpp:
#include "A.hpp"
int main(void)
{
A a;
a.f1();
return 0;
}
B::f1()
永遠不會被調用,但我仍然有鏈接錯誤。 但是,如果您刪除_declspec(dllexport)
它生成OK。
和錯誤說??? – Abhineet
(1)你不能使一個可訪問的函數不可訪問(2)一個全新的類對程序的其餘部分的編譯沒有影響(3)所有的虛擬函數都必須被定義,無論它們是否被調用。 –
你已經失蹤了;課後 – Renjith