доступ к полям класса через функцию типа того же класса
код плохой но вот мой вопрос :КАК МНЕ ЧЕРЕЗ ТИП ФУНКЦИИ ВЕРНУТЬ ЕГО ПОЛЯ ИЛИ МЕТОДЫ
#include <iostream>
using namespace std;
class A{
public:
int a = 5;
}
A test(){
return a;
}
int main(){
cout<<test();
return 0;
}
Ответы (2 шт):
Вам стоит прочитать о методах класса, и как с ними работать, это самые базовые понятия которые нужны.
В вашем коде A это всего лишь тип, для того что бы получить из него что-то вам необходимо иметь его экземпляр, без экземпляра вы ничего не сделаете.
#include <iostream>
class A {
private:
int a = 5;
public:
int test() const;
}
int A::test() const {
return a;
}
int main() {
A a; // экземпляр класса, который расположен в стеке.
::std::cout << a.test() << '\n'; // вызов метода у этого экземпляра и вывод значения
return 0;
}
Хм, тут я додумал что вы хотите из простой глобальной функции получить что-то из класса? Увы, это невозможно если у вас нет экземпляра объекта.
Можно было бы сделать как-то так?
#include <iostream>
class A {
public:
int a = 5;
}
A a;
A test() {
return a;
}
int main() {
::std::cout << test().a << '\n';
return 0;
}
A test(){
return a;}
Тут вы почти были на правильном пути. Только вы не создали этот test что бы к нему можно было обращатся. А так ответ выше дает вам полный ответ, но думаю вам пока лучше использовать методы класа описывывая их в самом класе чем выносить из за предел класа.