HI。在我的問題之前,我查看了其他線程有同樣的錯誤,沒有爲我工作。 我的問題代碼是in >> a.name >> a.extension;
。當我測試自己時,如果我將變量的類型從string
更改爲char
,它將起作用,但我無法使其與string
類型的值一起工作。錯誤C++ 2679(二進制'>>':找不到操作符需要'const std :: string'類型的右側操作數(或者沒有可接受的轉換))
我做錯了什麼? 下面就compillation(Visual Studio的2015年)
錯誤C2679二進制「>>」完全錯誤代碼:沒有操作員發現這需要右手 數類型「字符串常量的std ::」的(或有不可接受 轉換)
在此先感謝。這裏
#include <iostream>
#include <ctime>
#include <string>
using namespace std;
class Soft {
private:
int *size;
time_t *dateTime;
public:
string name;
string extension;
Soft();
Soft(string, string);
Soft(const Soft&source);
~Soft();
friend istream& operator>> (istream& in, const Soft& a)
{
in >> a.name >> a.extension;
return in;
};
void changeName(string);
void changeExtension(string);
};
Soft::Soft() {
size = new int;
*size = 0;
name = string("");
extension = string("");
dateTime = new time_t;
*dateTime = time(nullptr);
}
Soft::Soft(const Soft&source) {
name = source.name;
extension = source.extension;
size = new int;
*size = *source.size;
dateTime = new time_t;
*dateTime = time(nullptr);
}
Soft::Soft(string a, string b) {
name = a;
extension = b;
dateTime = new time_t;
*dateTime = time(nullptr);
}
Soft::~Soft() {
delete[] size;
delete[] dateTime;
}
void Soft::changeExtension(string a) {
extension = a;
}
void Soft::changeName(string a) {
name = a;
}
int main() {
Soft a;
getchar();
getchar();
return 0;
}
我沒有看到任何,但我的學校的老師希望與指針的一切......這是寫明確使用指針所有變量 –
@ M.Eugen:這是可笑的。你被教導如何做錯了。 :( –
@LightnessRacesinOrbit:你沒有學到的東西「可變」關鍵字呢?他可以宣佈他的會員數據,可變的,那麼他的例子將正常工作 – Raindrop7