функции с константными аргументами Перегрузка (продолжение)

Это продолжениеПредыдущий вопрос

Это стало действительно сложно, поэтому я начинаю новую тему, чтобы прояснить свою точку зрения (не хотел удалять предыдущую тему, потому что другие парни, которые предоставили ценную обратную связь, не теряют набранные ими очки репутации)

Обновленный код: (соответствует и работает)

#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

Надеюсь, я представил свой вопрос лучше. Я знаю другие способы сделать это. но возможно ли это

Ответы на вопрос(6)

Ваш ответ на вопрос