[解決済み】この宣言は、C++でストレージクラスまたは型指定子を持っていない
2022-01-17 16:07:35
質問
プログラムに複数のクラスがあります。
A) あるクラスのオブジェクトを別のクラスで作成した場合、エラーは発生しませんが、そのオブジェクトを使って関数を呼び出すと、上記のようなエラーが発生します。
B)また、別のクラスのオブジェクトを作成し、私のクラスのコンストラクタでそれを使用して関数を呼び出すと、私はこのようなエラーは発生しません。
C) Cout関数は、任意の関数を置いたとき以外は、クラス本体で機能しません。
D) メインクラスはこれらすべてを行うことができ、何のエラーも発生していません。
すぐにお返事いただけると幸いです。よろしくお願いします。
以下は、コードです。これらは、私のcppの中の2つのクラスです。私はそれを作成した後、オブジェクトを使用することを除いて、何の問題も直面している。すべてがメインで行うことができますが、他のクラスでできないのはなぜですか?
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <vector>
#include <map>
using namespace std;
class Message
{
public:
void check(string side)
{
if(side!="B"&&side!="S")
{
cout<<"Side should be either Buy (B) or Sell (S)"<<endl;;
}
}
};
class Orderbook
{
public:
string side;
Orderbook() //No Error if I define inside constructor
Message m; //No Error while declaring
m.check(side); //Error when I write m. or m->
};
解決方法は?
これは間違いです。
m.check(side);
そのコードは関数の中に入れなければなりません。 クラス定義は、宣言と関数しか含むことができません。
クラスは実行されるものではなく、オブジェクトの作り方の青写真を提供するものです。
ライン
Message m;
というのは
Orderbook
を含むことになります。
Message
という
m
を作成した場合、後で
Orderbook
.
関連
-
Swift言語とAppleScriptの違い、AppleScriptの開発状況について教えてください。
-
[解決済み】C++エラー: 予想されるunqualified-idを修正する方法
-
[解決済み】アプリケーション起動メソッドで例外が発生 java.lang.reflect.InvocationTargetException
-
[解決済み】変数が初期化されていないかもしれないエラー
-
[解決済み】必要な形式パラメータに対応する引数が与えられない - .NETエラー
-
[解決済み】エラー。式はintegralまたはunscoped enum型でなければなりません。
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み】拡張メソッドは、一般的でない静的クラスで定義する必要がある
-
[解決済み] [Solved] libpthread.so.0: error adding symbols: コマンドラインからDSOが見つからない
-
[解決済み】vtableへの未定義の参照
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
linux シェル学習ノート 5日目
-
CE5.2版を使って、武術のベースサイトである第一レベルのメソッドを見つける(グラフィックチュートリアル)。
-
スプレッドシートに匹敵するオンライングリッドシステム。EditGrid
-
LinuxでRの新バージョンを直接コピーする方法
-
FcScript V1.0 ヘルプファイル(説明書付き
-
[解決済み】'const char*' から 'char*' への無効な変換。
-
[解決済み】変数が初期化されていないかもしれないエラー
-
[解決済み】ValueError: 入力配列を形状 (224,224,3) から形状 (224,224) にブロードキャストできませんでした。)
-
[解決済み】マージが終了していない(MERGE_HEADが存在する)。
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない。