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

Локальные переменные-классы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ среднее число http://www.cyberforum.ru/cpp-beginners/thread952887.html
как найти среднее число трех переменных??? Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
C++ Проверки данных на вводе и френд-функция Доброго времени суток! Сразу к делу: 1. Фамилия студента должна содержать только буквы. Может кто знает какую проверку? А то и исключения перепробовал, но ничего не выходит почему-то... 2. Семестр студента должен содержать целочисленные значения >= 1. 3. Оценки студента должны содержать целочисленные значения от 0 до 10. Это о проверках (код ниже, строки прокомментированы так же как идут... http://www.cyberforum.ru/cpp-beginners/thread952822.html
C++ Выбор базы данных
Какую выбрать базу данных(перспективную и развивающуюся), гугл советует MySQL или Oracle// если да то посоветуйте хорошую литературу для начинающих
Массивы. Заменить все отрицательные элементы массива числом 0 C++
Создайте массив А с помощью генератора случайных чисел с элементами от -20 до 10 и выведите его на экран. Замените все отрицательные элементы массива числом 0
C++ Найдите ошибку, пожалуйста http://www.cyberforum.ru/cpp-beginners/thread952784.html
Задача: Дано ряд символов. Заменить в нем круглые скобки на квадратные. Строку считывает, выводит не заменив скобки.:wall: #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> int main() {
C++ strcpy и VS2012 // newintro.cpp // познакомимся с оператором new #include <iostream> #include <cstring> #include <string.h> using namespace std; int main() { char* str = "Дурная голова ногам покоя не дает."; подробнее

Показать сообщение отдельно
happy_robot
0 / 0 / 0
Регистрация: 12.09.2013
Сообщений: 4
12.09.2013, 10:35     Локальные переменные-классы
есть такой код
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
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
 
class My_vector{
friend ostream &operator<<(ostream &,const My_vector &);
public:
  My_vector(int);
  ~My_vector();
  double &operator[](int) const;
private:
  int size;
  double *ptr;
};
 
My_vector::My_vector(int s){
  size=s;
  ptr=new double[s];
  for(int i=0;i<s;i++) ptr[i]=0;
}
 
My_vector::~My_vector(){
  delete[] ptr;
}
 
My_vector f(My_vector x){
  My_vector v(10);
  for(int i=0;i<10;i++)v[i]=i*i;
  return v;
}
 
int main(){
  My_vector a(10),b(10);
  a=f(b);   //!!!!!!!!!! 
  return 0;
}
Почему не выдает ошибку? В f(My_vector) создается локальная переменная v. Она возвращается из функции. При возврате из функции происходит побитовое копирование a=f(b); (a.ptr == на v.ptr, но v при выходе из функции уничтожается). Должна сработать ошибка, так как a.ptr указывает на освобожденную память. Что не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru