這可能是一個新手問題,但我無法解決此問題。我可以分別解決前者或後者的問題,但不能同時解決。將字符串文字傳遞到函數並分配給成員變量
我有一個字符串成員的類和一個函數來設置它。我想傳遞一個文字給函數。
class Profiler
{
private:
std::string description;
//snip
public:
//snip
void startJob(const std::string &desc);
};
void Profiler::startJob(const string &desc) {
//snip
description = desc;
}
,我想(實際上需要)用這樣的:
profiler.startJob("2 preprocess: 1 cvConvertScale");
的問題是:
如何傳遞一個字符串字面到一個函數?解決方案我可以找到:通過值傳遞或通過const指針或const引用傳遞它。我不想按價值傳遞它,因爲它很慢(它畢竟是一個分析器,精確到微秒)。常量指針/參考給編譯器錯誤(或者我做錯了什麼?)
如何將它分配給成員函數?我能找到的唯一解決方案是使成員變量成爲一個指針。使它成爲非指針提供者錯誤「字段」描述「不完整類型」(wtf是否意味着?)。將它作爲指針不起作用,因爲它將一個const分配給非const。只有一個const指針/引用似乎工作。
兩件事:1.爲了參考你需要一個實際的變量。所以'string arg =「2 preprocess:1 cvConvertScale」; profiler.startJob(arg);'2.你沒有正確地分配你的指針。 'description = &desc;' – chris 2012-03-05 07:22:23