Михаиллл
09 липня 2020 р. 19:50

Вопрос по указателям в с++

Добрый день.
Я создаю это

  1. xxx *x1 = new xxx();

и у меня есть класс с указателем

  1. xxx *x2

как правильно сделать функцию у класса, что бы х2 указывал на область памяти х1?
Это не работает:

  1. void v(xxx *x3){
  2. x2=x3;
  3. }
  4.  
  5. void v(xxx *x3){
  6. *x2=*x3;
  7. }
2

Вам це подобається? Поділіться в соціальних мережах!

5
Михаиллл
  • 09 липня 2020 р. 20:42

по идее так компилирует, но результат пока не понятен

  1. void v(xxx &x3){
  2. x2=&x3;
  3. }
    ДК
    • 09 липня 2020 р. 20:59

    зачем для этого метод создавать?

    1. SomeClass *cl1 = nullptr;
    2. SomeClass *cl2 = new SomeClass(this);
    3.  
    4. cl1 = cl2;

    теперь cl1 может вывзывать методы, тк указатель на область памяти выделенную cl2 указывает;

      Михаиллл
      • 09 липня 2020 р. 21:05

      Так не подойдет. Этот класс внутри другого класса, который я создаю через функцию, в которой есть х1,
      , потому все же нужна функция.

        ДК
        • 09 липня 2020 р. 21:13
        • (відредаговано)

        Так можно обыграть, если вам нужны методы приватного класса.

        1. class Class1
        2. {
        3. public:
        4. explicit Class1(){
        5. _cl2 = new Class2;
        6. }
        7. void someFooGeneral(){ _cl2->SomeFoo(); }
        8. private:
        9. class Class2{
        10. public:
        11. void SomeFoo(){}
        12. };
        13. Class2 *_cl2;
        14. };
          Михаиллл
          • 09 липня 2020 р. 21:28
          • Відповідь була позначена як рішення.

          Как то это все усложняет. Еще вероятно работает так:

          1. void v(xxx *x3){
          2. x2=x3;
          3. }

            Коментарі

            Only authorized users can post comments.
            Please, Log in or Sign up
            • Останні коментарі
            • Evgenii Legotckoi
              16 квітня 2025 р. 17:08
              Благодарю за отзыв. И вам желаю всяческих успехов!
            • IscanderChe
              12 квітня 2025 р. 17:12
              Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
            • AK
              01 квітня 2025 р. 11:41
              Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
            • Evgenii Legotckoi
              09 березня 2025 р. 21:02
              К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
            • VP
              09 березня 2025 р. 16:14
              Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…