我的頭類是否有一種好方法可以選擇他可以在運行時呼叫的 .cpp 檔案?
例如 :
啊
#pragma once
#include <iostream>
class a
{
public:
a() {};
void printA();
};
a.cpp:
#include "a.h"
void a::printA()
{
std::cout << "first";
}
a_mockup.cpp:
#include "a.h"
void a::printA()
{
std::cout << "second";
}
然后主要是我想選擇我要呼叫的那個:
主.cpp:
#include "a.h"
#include <string.h>
using namespace std;
int main()
{
a test;
test.printA();
}
uj5u.com熱心網友回復:
一個函式不能有兩個實作。這將違反單一定義規則。您不能將兩個翻譯單元鏈接到一個程式中。
您可以在鏈接時在兩種實作之間進行選擇。如果將 main.cpp 翻譯單元與 a.cpp 鏈接,則呼叫該實作,如果與 a_mockup.cpp 鏈接,則呼叫其他實作。
為了在運行時在兩個函式之間進行選擇,必須有兩個函式;每個人都有自己的名字。一個最小的例子:
void f1();
void f2();
bool condition();
int main()
{
if (condition())
f1();
else
f2();
}
為了通過一個介面(即抽象)在兩個函式之間進行選擇,您需要多型性。C 中有多種形式的多型性,從函式指標到模板(不是運行時)再到虛函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/410795.html
標籤:
上一篇:有沒有辦法只回傳C 中的失敗?
