C++ の一部のコードで小さな問題が 1 つあります。コンパイルできません。プログラミングのスキルは今のところあまり高くありません。助けていただければ幸いです。事前にタイ。
問題は、どこにエラーがあり、どのようにコードを修正するかです
#include<iostream>
using namespace std;
struct S {
S(int i){ this->x = i;}
~S(){}
int x;
static const int sci = 200;
int y = 999;
}
void main(){
S *ps = new S(300);
ps->x = 400;
S s;
s.x = 500;
}
コンパイラ出力:
8 13 [Warning] non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
9 1 [Error] expected ';' after struct definition
10 11 [Error] '::main' must return 'int'
In function 'int main()':
14 7 [Error] no matching function for call to 'S::S()'
14 7 [Note] candidates are:
4 7 [Note] S::S(int)
4 7 [Note] candidate expects 1 argument, 0 provided
3 8 [Note] S::S(const S&)
3 8 [Note] candidate expects 1 argument, 0 provided
========アフターマッチ;) ===========
コード:
#include<iostream>
using namespace std;
struct S {
S() : x() {} // default constructor
S(int i) : x(i) {} // non-default constructor
~S(){} // no need to provide destructor for this class
int x;
static const int sci = 200;
int y = 999; // Only valid since C++11
}; // ; after class definition.
int main(){
S *ps = new S(300);
ps->x = 400;
S s;
s.x = 500;
}
としても:
#include<iostream>
using namespace std;
struct S {
S(int i){
this->x = i;
}
~S(){}
int x;
static const int sci = 200;
int y = 999;
};
int main(){
S *ps = new S(300);
ps->x = 400;
S *s = new S(20);
s->x = 500;
}
働いた!TY さん、juanchopanza さん、Paul Renton さん、そして時間を割いて私を助けてくれた他のすべての人に感謝します!