Позвольте мне опубликовать мой код первой:В чем разница между временной переменной и константой в C++?
void Fun(short &s){}
void FunCon(const short &s){}
int main()
{
int iTest = 20;//note: iTest is int but parameter of Fun is "short &"
Fun(iTest);//error, I know there is a temp variable(typecast)
FunCon(iTest);//ok
return 0;
}
Я знаю Fun(iTest);
будет генерировать новую временную переменную (приведение типа), но мне интересно, если переменная температура является постоянной ?
Если Нет: Почему я не могу передать переменную Temp Чтобы short &
Если Да: У меня есть еще один такой код:
class MyObject{
public :
void F(){}
};
MyObject MOCreator(){
return MyObject();
}
int main()
{
MOCreator().F();//OK
return 0;
}
If временную переменную, возвращенное MOCreator()
постоянный, почему переменная темпа может позвонить функция не-const член?
Мои вопросы:
1) В чем разница между временной переменной и в C++ постоянной?
2) Существует предложение в мышления в C++ (стр 507). Правильно ли предложение? и почему ?:
Временные объекты автоматически сопзЬ
меня попросили простой вопрос кем-то, и я встречаю больше вопросов, на моем пути к решению вопроса. Я знаю, что они могут быть очень распространенными вопросами, и я долго ищу в сети. У меня также было много разных ответов. Но теперь я больше смущен.
Заранее спасибо.
«Временные объекты автоматически const» Является ли предложение правильным? – Joe
@Joe Я не знаю контекста этого, я скажу, что это неправильно только для этого единственного предложения. – songyuanyao
@Joe See [Являются временными объектами в C++ const?] (Http://stackoverflow.com/q/4701558/3309790). – songyuanyao