singlepost

Снова указатели. С++ << На главную или назад  

Есть такой код
#include<iostream>

class AA{
public:
int* i;
};
int main(){
AA T1;
T1.i=new int;
AA* pT1=&T1;

return 0;
}
Подскажите как теперь через указатель pT1 в i записать какое-либо значение, или как прочитать значение из i

7 ответов в теме “Снова указатели. С++”

  1. 7
    Сергей Фирсов ответил:

    Спасибо за помощь.

  2. 6
    Игорь Орпанен ответил:

    Спасибо, почитаем.

  3. 5
    Андрей Горбоконь ответил:

    Во-первых, действительно необязательно это писать.
    Во-вторых, это плохой стиль программирования, т.к. директива using размещает пространство имен std в текущем пространстве имен (об этом не однократно упоминается у Страуструпа и у Саттера с Александреску)
    Так что лучше или не писать и использовать std::cout,
    или использовать using std::cout;

  4. 4
    Игорь Орпанен ответил:

    Без него не будет работать cout и cin :)
    Или придётся указывать std::cout, std::cin.

  5. 3
    Андрей Горбоконь ответил:

    > Во-первых, ты забыл "using namespace std;"

    lol :)

  6. 2
    Игорь Орпанен ответил:

    Во-первых, ты забыл "using namespace std;".
    Получить доступ: *pT1->i
    Записать значение: cin >> *pT1->i; или *pT1->i=5;
    Вывести значение: cout << *pT1->i;

    Пояснение: операция -> имеет больший приоритет, чем *, поэтому скобки не нужны.

    Рабочий код:
    #include <iostream>
    using namespace std;
    class AA
    {
    public:
    int* i;
    };
    int main()
    {
    AA T1;
    T1.i=new int;
    AA* pT1=&T1;
    cin >> *pT1->i;
    cout << *pT1->i << endl;
    return 0;
    }

  7. 1
    Андрей Горбоконь ответил:

    *(T1->i)

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.