すべてのアプリケーションクラスからオブジェクトにアクセスできるようにしたいと考えています。しかしだから私:すべてのアプリケーションクラスで1つのオブジェクトにアクセス可能
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass(){}
int id(){return -1;}
};
extern const MyClass myClass;
int main() {
cout << myClass.id();
return 0;
}
そして、どこでも、私は、私はやることが必要になります。
にextern constのMyClassのMYCLASS。以下のような
とそれを使用し、:
cout << myClass.id();
しかし、私は間違っていました。私は私ではなく、static MyClass myClass;
を行うことができると思い
error: passing 'const MyClass' as 'this' argument of 'int MyClass::id()' discards qualifiers [-fpermissive]
:それはエラーが返されます。そして、私は多かれ少なかれ同じ機能を持つでしょう。
ベスト/正しいアプローチは何ですか?
'int id()const {return -1; } ' –
エラーメッセージは、constオブジェクトで非constメソッド' id() 'を呼び出していると言います。 –