C++ 在 class 中使用 iostream
C++ use iostream inside class
我正在使用 iostream
和 map
。当我尝试设置功能时,它们会抛出错误。
我的代码:
#include "string"
#include "iostream"
#include "map"
using namespace std;
class myClass {
map<string, string> Map;
Map["Ziv"] = "Sion";
cout << Map["Ziv"];
};
我的错误:
error: 'Map' does not name a type
error: 'cout' does not name a type
为什么我不能使用 iostream
和 cout
?
Why I can't use iostream and cout?
因为class不能(直接)包含表达式语句。它只能包含成员声明。
表达式语句只能在函数内。这将是正确的,例如:
class main {
map<string, string> Map;
void example_function() {
Map["Ziv"] = "Sion";
cout << Map["Ziv"];
}
};
没有 main 函数就没有 C++ 程序,所以请创建 int main(){}
。并将 #include
指令中的双引号更改为尖括号,如下所示:
#include <string>
#include <iostream>
#include <map>
using namespace std;
class myClass {
public:
int myFunc();
};
myClass :: int myFunc(){
map<string, string> Map;
Map["Ziv"] = "Sion";
cout << Map["Ziv"];
}
int main(){
myClass myclass;
myclass.myFunc();
return 0;
}
初学者请谅解,如有错误请多多包涵
在面向对象的语言中,例如 C++,您不能在 class 中编写 expressions/statements。您可能想使用一个函数。示例:
#include<iostream>
using std::cout;
class Example {
public:
void sayHello() {
cout << "Hello!";
}
}
int main() {
new Example().sayHello(); // Prints Hello!
}
你必须在函数中输入cout,在class你不能执行函数,你只能描述它们或变量/对象。
Class 是一个实体,它包含相关的数据成员以及修改或访问这些数据成员的操作。 class 内不能执行任何表达式。做一些你无法访问的事情是没有意义的。因为访问和修改某些东西的唯一方法是操作。
是的,如果您想在创建 class 对象时打印一些内容,您可以在构造函数中执行此操作。可能这就是你想要做的:
#include <map>
#include <iostream>
#include <string>
class myClass {
private:
std::map<std::string, std::string> Map;
public:
myClass(const std::string& key, const std::string& value){
Map[key] = value;
std::cout << value;
}
};
int main(){
myClass cls("Ziv", "Sion");
}
我正在使用 iostream
和 map
。当我尝试设置功能时,它们会抛出错误。
我的代码:
#include "string"
#include "iostream"
#include "map"
using namespace std;
class myClass {
map<string, string> Map;
Map["Ziv"] = "Sion";
cout << Map["Ziv"];
};
我的错误:
error: 'Map' does not name a type
error: 'cout' does not name a type
为什么我不能使用 iostream
和 cout
?
Why I can't use iostream and cout?
因为class不能(直接)包含表达式语句。它只能包含成员声明。
表达式语句只能在函数内。这将是正确的,例如:
class main {
map<string, string> Map;
void example_function() {
Map["Ziv"] = "Sion";
cout << Map["Ziv"];
}
};
没有 main 函数就没有 C++ 程序,所以请创建 int main(){}
。并将 #include
指令中的双引号更改为尖括号,如下所示:
#include <string>
#include <iostream>
#include <map>
using namespace std;
class myClass {
public:
int myFunc();
};
myClass :: int myFunc(){
map<string, string> Map;
Map["Ziv"] = "Sion";
cout << Map["Ziv"];
}
int main(){
myClass myclass;
myclass.myFunc();
return 0;
}
初学者请谅解,如有错误请多多包涵
在面向对象的语言中,例如 C++,您不能在 class 中编写 expressions/statements。您可能想使用一个函数。示例:
#include<iostream>
using std::cout;
class Example {
public:
void sayHello() {
cout << "Hello!";
}
}
int main() {
new Example().sayHello(); // Prints Hello!
}
你必须在函数中输入cout,在class你不能执行函数,你只能描述它们或变量/对象。
Class 是一个实体,它包含相关的数据成员以及修改或访问这些数据成员的操作。 class 内不能执行任何表达式。做一些你无法访问的事情是没有意义的。因为访问和修改某些东西的唯一方法是操作。
是的,如果您想在创建 class 对象时打印一些内容,您可以在构造函数中执行此操作。可能这就是你想要做的:
#include <map>
#include <iostream>
#include <string>
class myClass {
private:
std::map<std::string, std::string> Map;
public:
myClass(const std::string& key, const std::string& value){
Map[key] = value;
std::cout << value;
}
};
int main(){
myClass cls("Ziv", "Sion");
}