アカウント名:
パスワード:
#define private public
#include "hoge/hoge.h"
これで秘匿関数呼びたいホーダイ。
マクロなら、OKだけど、関数は無理。 (C/C++)リンク時に相手がいない。
hoge.h:class hoge {private: void piyo();public: void hogera();};hoge.cpp:#include "hoge.h"#include <iostream>using namespace std;
void hoge::piyo(){ cout << "piyo" << endl;}void hoge::hogera(){ cout << "hogera" << endl;}main.cpp:#define private public#include "hoge.h"
int main(){ hoge hoge; hoge.piyo(); hoge.hogera(); return 0;}$ g++ -Wall -W -O2 main.cpp hoge.cpp -o hoge && ./hogepiyohogeraとくに問題はないかな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
#defineがあれば、何でも出来る (スコア:1)
#define private public
#include "hoge/hoge.h"
これで秘匿関数呼びたいホーダイ。
Re: (スコア:2)
マクロなら、OKだけど、関数は無理。 (C/C++)
リンク時に相手がいない。
Re:#defineがあれば、何でも出来る (スコア:0)
hoge.h:
class hoge {
private:
void piyo();
public:
void hogera();
};
hoge.cpp:
#include "hoge.h"
#include <iostream>
using namespace std;
void hoge::piyo()
{
cout << "piyo" << endl;
}
void hoge::hogera()
{
cout << "hogera" << endl;
}
main.cpp:
#define private public
#include "hoge.h"
int main()
{
hoge hoge;
hoge.piyo();
hoge.hogera();
return 0;
}
$ g++ -Wall -W -O2 main.cpp hoge.cpp -o hoge && ./hoge
piyo
hogera
とくに問題はないかな。