2016-09-27 3 views
-4

Мне хорошо известно, что строка 7 неверна. но я хочу использовать переменные класса в качестве аргумента по умолчанию для метода (apple).Я не могу использовать переменную класса в качестве аргумента по умолчанию для той же функции класса

class trial{ 

public: 

int i=10 ; 

    void apple(int i=this.i){ 
     cout<<i<<endl; 
    } 

    void display(){ 
     cout<<i<<endl; 
    } 
}; 
+4

Исправить. У вас есть вопрос? – juanchopanza

+2

Просто вставить кучу кода не очень полезно. Опишите проблему, с которой вы сталкиваетесь, какие сообщения об ошибках вы получаете, каков желаемый результат? Здесь много деталей. – Oldskool

ответ

2

Заменить

void apple(int i=this.i){ 
    cout<<i<<endl; 
} 

& hellip; с

void apple(int i){ 
    cout<<i<<endl; 
} 

void apple(){ 
    apple(i); 
} 

Вы не можете получить доступ к переменным-членам в списке формальных аргументов функции.

+0

но это то, что я хочу сделать. –

+0

@YashBhardwaj Просто настаивайте, что это не так. –

0

Вы не можете установить значение по умолчанию, подобное этому. Если вы хотите отобразить аргумент функции переменной insted с одним и тем же именем:

void apple(int i){ 
    // class member 
    cout << this.i << endl; 
    // function variable 
    cout << i << endl; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^