所以我在这段代码上遇到了问题,我想以一种新的大胆的方式插入字符串。它可以编译,但不会连续运行2个流箭头。我将所有与问题无关的东西都撕掉了,直到剩下的全部为止。显然,第一个向量使第二个向量嫉妒,因为它首先被初始化,因为如果我移动它们,一切都会很好。现在,我想知道为什么会这样,因为我相信您可以在任何需要的地方初始化任何东西,只要它超出实际需要的东西即可。
为什么切换类中的两个向量会修复我的代码? 预先感谢!
#include <iostream>
#include <string>
#include <vector>
class director {
public:
std::vector<int> i;
std::vector<std::string*> vecProgBars;
friend director& operator<<(director& objThis, std::string message) {
std::string* strPtr = new std::string(message);
objThis.vecProgBars.push_back(strPtr);
};
};
int main () {
director P;
std::cout << "This is running" << std::endl;
P << "Hello";
std::cout << "This also" << std::endl;
P << "World" << "!";
std::cout << "But not this" << std::endl;
}