前提・実現したいこと
名前と誕生日月を入力して表示するというプログラムを作っています。
そこでキーボードから入力した名前をnameに入れてShowDataで出力しようと思ったのですがエラーが出ました。
char型の変換でエラーを吐いていたためすべてchar型にして試してみましたが関数の引数が多すぎますというエラーが出てダメでした。
なぜ、このようなエラーが出るのか。char型で試したところの関数の引数が多すぎますというエラーはなぜ起こったのか
調べてもわからず困っています。
よろしければ知識をお借りしたいです。よろしくお願いいたします。
発生している問題・エラーメッセージ
エラー 1 error C2440: '=' : 'std::string' から 'char' に変換できません。 2 IntelliSense: "std::string" から "char" への適切な変換関数が存在しません
該当のソースコード
#include <cstring> #include <iostream> #include <string> #include <cstring> #include<fstream> using namespace std; #define N 80 class Base{ public: char name[N]; int Getday(); int Getmonth(); int day; int month; virtual void Setday(int a); virtual void Setmonth(int b); virtual void Setname(string c); void ShowData(); Base(); }; class friend1 : public Base { private: void showData(); public: friend1(); }; void Base::ShowData(){ cout << name << "\n"; cout << "誕生日" << "\n"; cout << month << "月"; cout << day << "日" << "\n"; }; void friend1::showData() { cout << name << "\n"; cout << "誕生日" << "\n"; cout << month << "月"; cout << day << "日" << "\n"; } int Base::Getday(){ return day; } int Base::Getmonth(){ return month; } void Base::Setday(int a){ if ((a >= 1) && (a <= 31)){ day = a; } else { cout << "" << "\n"; } return; } void Base::Setmonth(int a){ if ((a >= 1) && (a <= 12)){ month = a; } else { cout << "" << "\n"; } return; } void Base::Setname(string c){ name[N] = c; return; } friend1::friend1() { string aaa_name; int aaa, aaa2; cout << "名前の入力 : "; cin >> aaa_name; cout << "月の入力 : "; cin >> aaa; cout << "日の入力 : "; cin >> aaa2; Setmonth(aaa); Setday(aaa2); Setname(aaa_name); } Base::Base(){ Setday(23); Setmonth(6); strcpy_s(name, "bbb"); } int main(){ Base objct11; friend1 objct22; objct11.ShowData(); cout << "\n"; objct22.ShowData(); return 0; }
補足情報(FW/ツールのバージョンなど)
Visual Studio2013
C++
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/24 00:59