Mình có viết đoạn code như sau
#include <iostream>
#include <string>
using namespace std;
const string &shorterString(const string &s1, const string &s2);
string &shorterString(string &s1, string &s2);
int main()
{
string("matrix") = "matrices";
shorterString(string("matrix"), string("matrices"));
getchar();
return (0);
}
string &shorterString(string &s1, string &s2)
{
auto &r = shorterString(const_cast<const string&>(s1), const_cast<const string&>(s2));
cout << "2" << endl;
return const_cast<string&>(r);
}
const string &shorterString(const string &s1, const string &s2)
{
cout << "1" << endl;
return s1.size() <= s2.size() ? s1 : s2;
}
Mọi người cho mình hỏi tại sao hàm trong main nó lại gọi cái const vậy, dù mình thấy đối số nó ko phải là const mà là 1 đối tượng nhưng ko đặt tên thì lẽ ra phải ưu tiên gọi hàm không có const

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?