所以我有這個工作,並且即將把它放在我的gitub上,當我意識到我忘了評論,所以我回去做了,我想我做錯了,因爲現在我我得到錯誤我不知道如何擺脫。我開始評論我的C++程序,然後得到錯誤
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
class ENVIROMENT //Defines a class.
{
public:
string OS; //Difines a string.
{
if (char const* USER = std::getenv("USER")) //Checks for user name on a Unix-like system.
{
OS = "Unix"; //If true (succeded), assigns "Unix" to the variable "SYS".
}
else if(char const* USER = std::getenv("USERNAME")) //If last check was false (failed), checks for the username on Windows.
{
OS = "Windows"; //If true (succeded), assigns "Windows" to the variable "SYS".
}
else
{
OS << "Your system is not supported!"; //If both returned false (failed), assignes a "System not supported" message to SYS.
}
cout << OS << endl; //Tells the user what system they have or that it is not supported (meaning it doesn't know what OS it is).
return OS; //Returns OS to the string "OS".
}
};
int main()
{
ENVIROMENT CHECK; //Calls the class "ENVIROMENT", refers to it as "CHECK".
CHECK.OS(); //Calls the function (string) "OS" from the class "ENVIROMENT".
return 0; //Returns a value of 0 if int "main" executed successfuly.
}
錯誤:
ERROR: 10:11 Expected member name or ';' after declaration specifiers.
和
ERROR: 31:4 Type string does not provide a call operator.
我的問題是:什麼這些錯誤是什麼意思?我知道我必須錯過一些非常基本的東西。
編輯:它應該根據用戶名系統變量檢測正在運行的操作系統。返回unix系統上的「Unix」和Windows上的「Windows」。它純粹是教育性的,並不意味着被自己使用,但可以用於更完整的程序。
我在回答中提供了一個工作解決方案。以下是與工作代碼的鏈接:http://ideone.com/fwbQVy。您需要將其與您的比較以查看差異。最好是擺脫所有評論來修復代碼本身。您可以稍後添加評論。 – Azeem
@Josh:你應該避免在代碼中多餘的評論。儘量讓你的代碼可讀。像「OS =」Unix「這樣的一行; //如果爲真(成功),則將「Unix」分配給變量「SYS」。「不會給讀取器帶來任何東西,只會使代碼混亂。這會讓你的代碼更難讀。您的代碼非常易讀,不需要評論即可輕鬆完成。評論應限於解釋算法和/或關於輸入,錯誤條件等的特殊考慮的單個塊...通常稱爲「合同」。大多數功能根本不需要評論,但是文檔。 –