Форум программистов, компьютерный форум CyberForum.ru

Перегрузка operator new - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисление значения функции на отрезке http://www.cyberforum.ru/cpp-beginners/thread991492.html
Составить программу для вычисления значений функции F(x) на отрезке с шагом h.Результат представить в виде таблицы, первый столбец который - значения аргумента,второй - соответствующие значения функции. F(x)=2tg x/2+1 - (c++).Заранее благодарен! :)
C++ Перероботать прогу Нужно перероботать прогу под функцию 0,5 х в кубе #include "stdafx.h" #include "iostream" #include <cmath> using namespace std; //_____________________________________________________ float Trapezodial(int min, int max, int kilkist) http://www.cyberforum.ru/cpp-beginners/thread991478.html
Рекурсивная программа C++
Напишите рекурсивную программу для сортировки массива методом "пузырька". Как сделать из простого кода пузырька рекурсивную программу? Как понимаю нужно запихать ее в какую-то функцию, но явно не просто так... #include <iostream> #include<time.h> int rekurs () { for (i=0;i<n-1;i++) for (j=n-2;j>=i;j--) if (A>A) {
C++ Определение цифры
Для натурального числа N, вводимого с клавиатуры, определите третью справа его цифру, и замените её на 8 Может мне кто-нибудь объяснить, что нужно сделать?
C++ Совет по проекту http://www.cyberforum.ru/cpp-beginners/thread991466.html
Здравствуйте. Столкнулся с такой ситуацией. Скачал готовый проект С++(небольшая задачка с матрицей), но при открытии проекта через visual studio 2008 express edition нет кода программы. Сам код можно посмотреть только через блокнот. Как сделать так, чтобы можно было редактировать проект?
C++ Посчитать количество денег, которые нужно заплатить за цветы, продающиеся группами с разной стоимостью Когда Мальвине исполнилось К лет,она пригласила друзей на свой день рождения.Буратино не долго думая попер в магаз где продают цветы чтобы купить Мальвине столько роз, сколько ей лет.В магазине можно купить 50 роз за 50 гривен, 10 роз за 15 грн, 1 розу за 2 грн. Вопрос: какую минимальную сумму денег должен иметь Буратино, чтобы сделать подарок Мальвине, если она может жить до 100000. До чего... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
29.10.2013, 16:45
milvus, Я ведь уже объяснил почему. Давайте возьмем более простой пример.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
struct A
{
   A() {}
   A(A* ptr)
   {
      std::cout << "from pointer c-tor called" << std::endl;
   }
};
 
struct C
{
   C(A* ptr) : ptr_(ptr)
   {
   }
private:
   A* ptr_;
};
 
int main()
{
   C c = new A();
}
Конструктор не вызван, все логично.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
struct A
{
   A() {}
   A(A* ptr)
   {
      std::cout << "from pointer c-tor called" << std::endl;
   }
};
 
struct C
{
   C(A* ptr) : ptr_(ptr)
   {
   }
private:
   A ptr_;
};
 
int main()
{
   C c = new A();
}
Все вызывается.

Суть в том, что вы несколько неверно понимаете что происходит в написанной вами программе. Вы написали в классе Array конструктор, который принимает указатель. Вы написали в классе Scoped_Array конструктор который принимает указатель на Array. В этом конструкторе вы пытаетесь инициализировать указатель на Array, хранящийся в классе Scoped_Array, переданным указателем - указатель просто копируется, т.к. для того чтобы был вызван конструктор, должно быть хотя бы

C++
1
_ptr(new Array(ptr))
Тогда да, вызовется конструктор.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru