Может кто-нибудь сказать мне, почему следующий код:ошибка: передача «ххх», как «это» аргумент отбрасывает отборочные
#include <iostream>
using namespace std;
class Test {
int a, b, c;
public:
Test() : a(1), b(2), c(3) {}
const void print() {cout << a << b << c;}
int sum() {return (a+b+c);}
};
const Test& f(const Test& test) {
test.print();
// cout << test.sum();
return test;
}
main() {
Test x;
cout << "2: ";
y = f(x);
cout << endl;
}
дает ошибку компиляции
"error: passing 'const Test' as 'this' argument discards qualifiers"
?
Мой print()
способ const
, который все, что я понял, был необходим. Для меня (0 комментариев) sum()
метод в f()
должен дать ошибку, но не метод print()
. Если кто-нибудь может указать мне, где я недопонимаю, это было бы здорово.
Cool username, bro :) –
@ VioletGiraffe Последнее, что я посмотрел, жирафы не могли говорить. –
Фиолетовые могут. Всегда мог. Кто-то редактирует вики! –