如何将我想要的字符串输入到int main()中
How do I get the string I want into int main()?
好的,我不知道如何解释,但现在开始。我想将Dog和Cat类的name(从返回名称)输入到int main中,以便它们打印出fido.name和spot.name所在的位置。我该怎么做?
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class Dog {
private:
// constructor
Dog(string name) {
this->name = name;
name = "Fido";
cout << "Dog's name is " << name << endl;
}
public:
static string name;
static string GetName();
};
string Dog::GetName(){
return name;
}
class Cat {
private :
// constructor
Cat(string name) {
this->name = name;
name = "Fido";
cout << "Cat's name is " << name << endl;
}
public :
static string name;
static string GetName();
};
string Cat::GetName(){
return name;
}
int main() {
Dog fido("Fido"); //error here stating that Dog::Dog(std::string name)
//declared at line 13 is inaccessible
Cat spot("Spot");
cout << "From main, the Dog's name is " << fido.name << endl;
cout << "From main, the Cat's name is " << spot.name << endl;
cout << "Hit any key to continue" << endl;
system("pause");
return 0;
}
您必须将构造函数设为公共的(带有标记"public:"),否则将无法从类外部创建对象。
此外,删除所有"静态"密钥,因为如果你将其声明为静态,你将无法拥有超过1个不同的"猫"answers"狗"
我希望它能帮助
使用GetName()
函数。
cout << "From main, the Dog's name is " << fido.GetName() << endl;
cout << "From main, the Cat's name is " << spot.GetName() << endl;
您必须将构造函数移动到类的public
部分
Dog fido("Fido");
Cat spot("Spot");
工作。
当我仔细观察你的课时,我意识到你犯了更多的错误。在这两个类中,name
需要是非static
成员变量,GetName()
需要是非-static
成员函数。
Dog
需要类似于:
class Dog {
public:
Dog(string name) {
this->name = name;
}
string GetName() const;
private:
static string name;
};
您将不得不对Cat
进行类似的更改。
相关文章:
- 我的 int main() 中出现堆栈溢出错误
- 在函数 'int main(int, char**) 中,没有声明 'MIN'
- 视频捕获与" int main(int argc, char **argv) "
- 'int main(int, int, std::__cxx11::string, std::__cxx11::string)'只需要零或两个参数 [-Wmain]
- C++ 从节点模拟 int main(int argc, char *argv[])
- 'int main(int argc, char* argv<::>)' 如何成为 main 的有效签名?
- C++ int main (int argc, char *argv[]) - 是 argv a c 样式数组
- 如何使用int main(int argc,char*argv[])运行c++proram
- 绕过 SDL2 中的"int main(int argc, char** argv)"
- int main(int, char const* const*) 格式良好
- int main(int argc,char* argv[]) 为什么 argc 给出 2 个参数
- OpenCV中int main(int argc,char**argv)中argc和argv的意义
- 将值传递给main(int,char**)
- 使用 int main(void) 编译失败;main(int argc, char *argv[]) successs
- int main(int argc, char **argv)
- GTEST_API_ int main(int argc, char **argv){}中的GTEST_API_是什么?
- 关于缺乏"int main(int argc, char* argv[])"知识
- 如何从终端启动C应用程序,并将参数传递给int main(int argc,char*argv[])
- 警告:'int main(int, char***)' 的第二个参数应该是 'char **' [-Wmain]
- main(int argc, char* argv[]) dont understand