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

Грязный хук. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Классы и функции http://www.cyberforum.ru/cpp-beginners/thread100156.html
Вопрос по поводу "идеологии" написания классов. Как лучше писать реализации? Есть ли смысл создавать функции, которые по сути аналогичны предназначению метода класса и просто вызывать их из методов? Например, так: void ker_foo( /* ... */ ) { } class Class
C++ 5 программ. Срочно 1.Написать программу номер дня недели,название дня недели или сообщение об ошибке ,если введены неверные данные 2.написать программу которая выводит таблицу квадратов первых 10 целых полодительных чисел. 3. Написать программу которая выводит таблицу квадратов первых 5 положительных чисел 4. Написать программу которая вычисляет сумму ряда 1+1/2+1/3+...+1/н н-вводит пользователь. 5. Написать... http://www.cyberforum.ru/cpp-beginners/thread100133.html
Метод Гаусса для решения СЛАУ с использованием одномерного массива C++
Доброго всем времени суток. У меня есть прога для двумерного массива #include <stdio.h> #include <iostream> #include <conio.h> using namespace std; void f(double an, double bn,int m) { int i,j; cout << " \n";
Сумма квадратов цифр любого числа в итоге равняется числу из интервала [1,9]. C++
Помогите решить с объяснениями. Сумма квадратов цифр любого числа в итоге равняется числу из интервала . Вывести количество и сами числа, сумма цифр которых равны либо 1, либо 4, из интервала от 1 до 500. Программа должна содержать рекурсивную функцию подсчета суммы цифр числа.
C++ В вещественной матрице размером NxN найти максимальный и минимальный элементы. http://www.cyberforum.ru/cpp-beginners/thread100116.html
Помогите решить с объяснениями. В вещественной матрице размером NxN найти максимальный и минимальный элементы. Переставить строки, в которых они находятся. Если они находятся в одной строке, выдать об этом сообщение. Программа должна содержать функции нахождения строк в которых находятся максимальный и минимальный элементы.
C++ вычисление простых чисел в книге написана программа, про вычисление простых чисел. #include <iostream> #include <math.h> using namespace std; int main() { int n; bool prostoe = true; double koren = sqrt(double(n)); подробнее

Показать сообщение отдельно
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
01.03.2010, 11:17     Грязный хук.
Провёл не большой анализ по одному коду, и выянил не которые особенности,
о которых не пишут в книгах о языке C++.
Это я узнал из книги INside COM.

Также помню не в тему спор завёл где то на форме, про виртуальный деструктор и
где его надо прописывать.
Правильнее и безопаснее прописывать конечно везде, если не брать концепцию COM.

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
#include <iostream.h>
class Abstract {
public:
/*Абстрактному классу не нужен виртуальный деструктор потому что Release может действовать и без него,
*/
virtual long Release() = 0;
};
class MyClass: public Abstract  {
public:
    MyClass(){ cout<<"Create MyClass\n"; }
    virtual ~MyClass() {cout<<"Destroy\n"; }
    
virtual long Release(){
/*подразумивается как delete obj, верно ли я предполагаю, поэтому деструктор вызывается с нужного места  иерархии: тоесть с производного класса.
*/  delete this;                
             return 0;
    }
};
 
 
int main(){
MyClass  *obj = new MyClass;
Abstract *aobj = obj;
aobj->Release();
//delete aobj; не сработает так как в базовом нет виртуального деструктора.
return 0;
}
Тогда получается COM компонент явно через delete( к указателю базового класса) не удалить,
так как в базовом классе отстутсвует виртуальный деструктор.

Я то знаю почему надо что бы delete не работало, мне это известно.

Я просто хочу узнать у более опытных прогеров верно ли мое предположение о том как действует
Release():
/*подразумивается как delete obj, верно ли я предполагаю, поэтому деструктор вызывается с нужного места иерархии: тоесть с производного класса.
*/
Или применяется ещё что то.
Ответьте пожалейста, заранее благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru