Лёха ***
Лёха ***

с++Запуск "private:" метода класса

#include

using namespace std;

class Bot

{

public:

void startFun(){

void CloseFun();

}

private:

int CloseFun(){

cout << "Hello" << endl;

}

};

void main(){

Bot p100;

p100.startFun();

}

Как запустить CloseFun(); ?



я нашел свою ошибку, спасибо всем

ЕМ
Екатерина Мельникова

Проблема у Вас в том, что Вы ее не вызываете, а просто объявляете прототип (куда можно прототипы совать, вопрос отдельный) . Уберите лишнее слово void в том месте, где пытаетесь вызвать.

Татьяна Переверзева
Татьяна Переверзева

#include

class Bot {
public:
void startFun(){
closeFun();
}

private:
void closeFun() {
std::cout << "Hello" << std::endl;
}
};

int main() {
Bot p100;
p100.startFun();
return 0;
}

startFun вызывает closeFun. Доступ к private вне класса имеют только друзья.

void main - очень плохо, стандарт С++ не разрешает.
using namespace std - плохо, все, что есть в std, теперь попадает в глобальную область.
Лучше префикс std::

Комментарий - почему нельзя писать тип возвращаемого значения при запуске через функцию доступа на закрытый метод? Можно, почему нет:

class Bot {
public:
void startFun(){
int close_result = closeFun();
std::cout << "closeFun is returned "
<< close_result << std::endl;
}

private:
int closeFun() {
int result = 5;
std::cout << "Hello, i return "
<< result << std::endl;
return result;
}
};

Тип возращаемого значения, отличный от void, задается, если есть что возвращать.
Не важно, находится ли функция в private, public, protected секциях, или вообще вне class / struct / union.

АФ
Александр Фокин

void startFun()
{
this.CloseFun();
}

Похожие вопросы
java. вызвать метод класса из анонимного класса. как?
куда метод сувать в си шарп, чёто он везде ошибки выдаёт. в метод майн сунул, потом в класс в методе майн сунул этот ме
Инициализация объектов класса в конструкторе и в специальном методе класса? В чем разница?
как вызвать метод "верхнего" из вложенного класса c++
C# Как вызвать не статический метод из класса А, через статический метод в классе Б ?
Как передать значения аргументов метода в другой класс?
Не запускается Crossfire Private
Уважаемые форумчане, скажите, почему все методы класса в java должны быть static (статичными) для запуска программы?
Почаму в Python нет private и protected свойств и методов?
Java.в чем отличие метода от основного метода в классе? что возвращает отсутствующий спицификатор класса?