Ist es möglich, dieses Mitglied int MyClass::get(int key) const
anstelle der int& MyClass::get(int key)
zu nennen? Mit anderen Worten, wo in den C++ - Quellcodes kann ein Wert verwendet werden, aber keine Referenz?Wie Sie diese Memberfunktion in C++ aufrufen?
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass(int input) : i(input) {};
int i;
int get(int key) const {
std::cout << "int get(int key) const " << key << std::endl;
return i;
}
int& get(int key) {
std::cout << "int& get(int key) " << key << std::endl;
return i;
}
};
void dummy(const int helpme)
{
std::cout << helpme << std::endl;
}
int main() {
// your code goes here
MyClass abc(6);
std::cout << abc.get(13) << std::endl;
int result = (int)abc.get(16);
dummy(abc.get(18));
return 0;
}
Warum hast du eine altmodische Besetzung hier '(int) abc.get (16)'? –
In C++ 17 können Sie 'std :: as_const (abc) .get (...)' verwenden. Andernfalls können Sie 'abc' an eine' const MyClass & 'binden. Beachten Sie, dass ich diese Art von Design nicht ermutigen, obwohl – KABoissonneault