有一個名爲main.cpp的C++文件。在C++中重寫來自調用者源文件的函數
的main.cpp
#include "addition.h"
#include <iostream>
int main(){
int x=2;
int y=3;
std::cout<<getsum(x,y);
}
此文件包括稱爲addition.h自定義首部文件
addition.h
#include "my_adders.h"
namespace{
int getsum(int a,int b){
return calculate_addition_h(a,b);
}
}
my_adders.h
#include <maths.h>
int calculate_addition_h(int p, int q){
int sum=0;
//Fn definitions
return sum;
}
在main.cpp中, 我需要重寫calculate_addition_h函數的定義。
可能嗎?
我試着複製calculate_addition_h定義以及main.cpp中的聲明。但是,當我打印o/p時,調用my_adders.h中的calculate_addition_h方法,而不是main.cpp中的方法。
請注意:我無法對addition.h或my_adders.h進行任何更改。
任何幫助表示讚賞!
@Andreas Grapentin:編輯。謝謝 –
我想你可以把你自己的版本放在一個單獨的命名空間中(例如'namespace overridden_adders'),然後通過'using'語句強制使用它。 – CompuChip
我以爲命名空間關鍵字採取了一個參數? –