//test.cpp
#include<iostream>
#include<string>
class test {
string hoge;
public:
test(string str);
void method() const;
}
14行目 test::test(string str) : test(hoge){}
void test::method() const {
std::cout << "test" << std::endl;
}
int main() {
string s;
std::cout << "名前を入力してください。" << std::endl;
std::cin >> s;
test aaa(s);
aaa.method();
}
コンパイルしようとすると下記エラーになります。
エラー E2303 test.cpp 7: 型名が必要
エラー E2139 test.cpp 7: 宣言に ; がない
エラー E2293 test.cpp 10: ) が必要
エラー E2147 test.cpp 14: 引数宣言は 'string' で始められない
エラー E2111 test.cpp 14: ここでは型 'test' は定義できない
エラー E2136 test.cpp 14: コンストラクタには戻り型は指定できない
エラー E2316 test.cpp 14: 'test::test(int)' は 'test' のメンバーではない
エラー E2451 test.cpp 22: 未定義のシンボル string(関数 main() )
エラー E2379 test.cpp 22: ステートメントにセミコロン(;)がない(関数 main() )
エラー E2451 test.cpp 24: 未定義のシンボル s(関数 main() )
*** 10 errors in Compile ***
■1.型名が必要
→string hoge;と宣言してる箇所でエラー発生。
…stringと宣言してるのになぜでしょうか…
■2.宣言に";"がない
→string hoge;と宣言してる箇所でエラー発生。
…";"つけてるのですが…
■3.")"が必要
→test(string str);の行でエラー発生。
…")"はどこで必要なのでしょうか
■4.引数宣言はstringでははじめられない
→test::test(string str) : test(hoge){}の行でエラー発生。
…C++って引数をstringで受け取れない…?どういうことでしょうか
などなど疑問がいっぱいあるのですが、どこが間違っているのかよくわかりません…ご指導よろしくお願いします。
No.2
- 回答日時:
//bcc32で一応コンパイル通った
//test.cpp
//test.cpp
#include<iostream>
#include<string>
class test{
private:
std::string hoge;
public:
test(std::string& str) {
hoge = str;
}
void method() const{
std::cout << hoge << std::endl;
std::cout << "methodメソッドが呼び出されました" << std::endl;
}
};
void main(){
std::string s;
std::cout << "名前を入力してください。" << std::endl;
std::cin >> s;
test aaa(s);
aaa.method();
}
No.1ベストアンサー
- 回答日時:
C++のstringは、正しくはstd::stringと書きます。
std::というのは、標準の名前空間のことで端的に言えば「標準の」を意味します。
# 一部の古いコンパイラはstd::がいらないものもあります。
# また、using namespaceというstd::を明記しなくてもいい記法があり、
# 入門書ではお手軽に使っていることがありますが、
# 基本的はヘッダでは使わない方が良い方法なので、std::と書いた方が安全です。
とてもわかりやすい解説ありがとうございました。
訂正してコンパイルするとうまくいきました。
また何か機会がありましたらご指導宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- Excel(エクセル) VBA ワークシート指定の1行目を選択をしたい 2 2022/08/20 18:10
- C言語・C++・C# c言語 配列とポインタについて 3 2023/02/09 22:53
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
switch文のエラーについて
-
セグメンテーションフォルトが...
-
ファイル読み込みとmap処理
-
構文エラーが出ているのですが...
-
リモートデスクトップの接続元I...
-
iostream インクルード時に発生...
-
C++で縦の棒グラフ
-
snprintfが使用できない。
-
VC++で文字列から任意の文字を...
-
std::map の const 修飾について
-
このプログラミング誰か教えて...
-
vectorの中にmap
-
std::wstringのメモリリークに...
-
ヘッダーファイルがインクルー...
-
string型のフォーマット書式指...
-
winpcapを用いたプログラミング
-
C++で大量のエラーが出る
-
コンパイルできません
-
C++ basic_ostreamの拡張
-
atlbase.h と afxwin.hの同時定義
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラーが出ているのですが...
-
VC++で文字列から任意の文字を...
-
enumの値から定義名を文字列化...
-
switch文のエラーについて
-
空ENTERの判別
-
なぜ、C++の標準ヘッダをインク...
-
【C++】ヘッダ内でstringを格納...
-
C++での <iostream.h>と<iostre...
-
#include "fstream.h"
-
#define中の#のエスケープ
-
JPEGやPNGが読めるLoadImage関数
-
リモートデスクトップの接続元I...
-
CStringとString
-
string型のフォーマット書式指...
-
std::map の const 修飾について
-
VHDLのsignedとunsignedの違いは?
-
このプログラミング誰か教えて...
-
構造体配列のvectorへの変換と...
-
指定した文字を削除したい
-
構造体に決められた文字列を入...
おすすめ情報