作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望这不是一个愚蠢的问题。基本上我想访问存储在 Class 中的字符串(Statement 是我正在使用的名称)在 Statement 类型的 vector 中。基本上我试图将对象存储在对象的动态层次结构中。类型.cpp:
#include<iostream>
#include<fstream>
#include <string>
#include <vector>
using namespace std;
class Statement{
public:
vector<string> Inner_String;
vector<Statement> Inner_Statement;
string contents;
void set_contents (string);
string get_contents(){ return contents;}
void new_string(string);
string get_string(int v){return Inner_String[v];}
void new_Inner_Statement(Statement);
Statement get_Inner_Statement(int v){return Inner_Statement[v];}
};
void Statement::set_contents(string s){
contents = s;
}
void Statement::new_string(string s){
Inner_String.push_back(s);
}
void Statement::new_Inner_Statement(Statement s){
Inner_Statement.push_back(s);
}
主要方法:
#include <iostream>
#include "FileIO.h"
#include "Types.h"
using namespace std;
int main()
{
Statement test;
test.new_Inner_Statement(Statement());
Statement a = test.get_Inner_Statement(0);
a.set_contents("words");
cout << a.get_contents();
test.get_Inner_Statement(0).set_contents("string");
cout << test.get_Inner_Statement(0).get_contents();
return 0;
}
发生的事情是 cout << a.get_contents()返回它的字符串 cout << test.get_Inner_Statement(0).get_contents()没有。
最佳答案
看这段代码:
test.get_Inner_Statement(0).set_contents("string");
^^^^^^^^^^^^^^^^^^^^^^^^^^^
它调用这个函数:
Statement get_Inner_Statement(int v)
返回类型声明的复制对象(临时)。在此对象上,您调用 set_contents 函数,该函数在调用结束时不再存在。
然后,你调用:
test.get_Inner_Statement(0).get_contents();
从未更改的语句创建一个新的临时文件,并尝试获取其内容。
关于c++ - 如何将对象存储在 Vector 中的对象中? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22448829/
我是一名优秀的程序员,十分优秀!