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

[C++] Взятие адреса конструктора. Физическое время существование объекта. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать, какой функции какой файл *.a соответсвует? http://www.cyberforum.ru/cpp/thread446938.html
Друзья! Работаю с mingw, вот там надо так: если, допустим, вызываешь API- функцию, то надо подключать соответствующую библиотеку (?), делается это ключом линкёра примерно так: -lwww файл Эта...
C++ Про деструктор и утечку памяти Доброе время суток. Вот что дано: #include <string> #include <vector> class Symbols { protected: void add(std::string str); // добавления символа virtual void inputData() = 0; //... http://www.cyberforum.ru/cpp/thread446749.html
Создать exe, запускающий exe C++
Говорю сразу: я ничего не смыслю в програмировании; зачем подался на такой форум? Надеюсь получить ответ на свой вопрос,упавая на то, что его реализация не такая сложная. У меня возникла...
Странное поведение bool C++
Помогал отлаживать код и мы наткнулись на удивительное. Кодер скрыл отображение варнингов в VS2010. Метод М1 не всегда возвращал значение типа bool. И потому в методе М2, вызывающем метод М1,...
C++ Как средствами BC 3,1 запросить свободное место на указанном жёстком диске? http://www.cyberforum.ru/cpp/thread444851.html
Извиняюсь, если создал лишнюю тему, но ничего по своей проблемке я вроде не заметил. Если что-то есть, поправьте. А вопрос в следующем: как средствами BC 3,1 запросить свободное место на указанном...
C++ Указания адреса функции Есть библиотека. Нужно чтобы функция в моей библиотеке указывала на функцию в чужой. Вот мой код: typedef int (WINAPI WJMP)(); extern "C" __declspec(dllexport) WJMP Test(void); *Test=... подробнее

Показать сообщение отдельно
Bers
Заблокирован
16.02.2012, 16:38
Цитата Сообщение от AzaKendler Посмотреть сообщение
1. указатель на объект указывает на что?
Указатель на объект указывает на объект (адрес, с которого начинаются данные объекта)

Цитата Сообщение от AzaKendler Посмотреть сообщение
получая указатель на объект - мы получаем и адрес расположения конструктора?
Получая адрес объекта, мы получаем адрес объекта.

Рассмотрим код:

C++
1
2
3
&A(); //строчка содержит две операции:
        //1. Создание объекта.
        //2. Взятие адреса у сущности, получившейся в результате пункта 1
Таким образом, результатом выражения будет являться адрес объекта.

Рассмотрим другой пример:

C++
1
2
3
4
5
6
int foo() { } 
int main ()
{
    &foo;  //здесь мы получаем адрес самой функции, 
              //а не "результата" её работы
}
Рассмотрим 3й пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
struct test 
{ 
    test() {} 
    void foo(){}
};
 
 
int main ()
{
    &test::test;  //: error C2277: test::{ctor}: невозможно получить адрес этой функции-члена
    &test::foo;   //а так можно
}
Стоит различать что есть "результат вычисления выражения", что бы понимать, к чему именно будет применена следующая на очереди операция.

Добавлено через 1 минуту
Цитата Сообщение от CheshireCat Посмотреть сообщение
2. Нет, независимо от наличия член-функций в объекте, этот указатель не указывает ни на конструктор, ни на какую-либо вообще член-функцию.
Более того, Стандарт языка говорит, что указатель на конструктор получать вообще не следует. (Ну, ладно, уточню: хакерскими методами его получить можно, но вот что произойдет при попытке вызвать конструктор по полученному указателю - об этом Стандарт скромно умалчивает.)
можете привести пример, как именно срисовать указатель на конструктор, и затем вызвать этот конструктор по указателю?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru