функции с константными аргументами Перегрузка (продолжение)
Это продолжениеПредыдущий вопрос
Это стало действительно сложно, поэтому я начинаю новую тему, чтобы прояснить свою точку зрения (не хотел удалять предыдущую тему, потому что другие парни, которые предоставили ценную обратную связь, не теряют набранные ими очки репутации)
Обновленный код: (соответствует и работает)
#include <iostream>
using std::cout;
class Test {
public:
Test(){ }
int foo (const int) const;
int foo (int );
};
int main ()
{
Test obj;
int variable=0;
int output;
do{
output=obj.foo(3); // Call the const function
cout<<"output::"<<output<<std::endl;
output=obj.foo(variable); // Want to make it call the non const function
cout<<"output::"<<output<<std::endl;
variable++;
usleep (2000000);
}while(1);
}
int Test::foo(int a)
{
cout<<"NON CONST"<<std::endl;
a++;
return a;
}
int Test::foo (const int a) const
{
cout<<"CONST"<<std::endl;
return a;
}
Вывод (получаю):
NON CONST
output::4
NON CONST
output::1
NON CONST
output::4
NON CONST
output::2
NON CONST
output::4
NON CONST
output::3
NON CONST
output::4
NON CONST
output::4
NON CONST
output::4
NON CONST
output::5
Вывод (я желал / имел ввиду)
CONST
output::3
NON CONST
output::1
CONST
output::3
NON CONST
output::2
CONST
output::3
NON CONST
output::3
CONST
output::3
NON CONST
output::4
CONST
output::3
NON CONST
output::5
Надеюсь, я представил свой вопрос лучше. Я знаю другие способы сделать это. но возможно ли это