(no subject)

Date: 2004-06-07 12:29 pm (UTC)
From: [identity profile] 109.livejournal.com
а разве нельзя написать MyClass* my = null; ?

я не издеваюсь, а на самом деле не помню уже... и если нельзя, то просто MyClass* my; разве не null содержит?

(no subject)

Date: 2004-06-07 12:35 pm (UTC)
From: [identity profile] caseq.livejournal.com
Написать так можно (разве что NULL большими буквами), но это -- указатель а не ссылка (и во втором случае там будет мусор, а не NULL). А ссылку можно только сразу инициализировать:
MyClass a;
MyClass &my=a;
Попытка написать просто MyClass &my; выдаст ошибку компиляции.

(no subject)

Date: 2004-06-07 12:58 pm (UTC)
From: [identity profile] 109.livejournal.com
Написать так можно (разве что NULL большими буквами)

о! а передать его потом в функцию, принимающую MyClass& - можно?

во втором случае там будет мусор, а не NULL

всегда? а если это не локальная переменная, а член класса? а если static член?

(no subject)

Date: 2004-06-07 01:03 pm (UTC)
From: [identity profile] caseq.livejournal.com

>> Написать так можно (разве что NULL большими буквами)

> о! а передать его потом в функцию, принимающую MyClass& - можно?

Можно. Через разименование. Но такие вещи уже в принципе не ловятся at compile time -- в одном месте запихать в переменную условно некорректное значение, а в другом его использовать ;-)


> всегда? а если это не локальная переменная, а член класса? а если static член?


Ну, если static -- будет NULL. Но это редкий случай ;-)

(no subject)

Date: 2004-06-07 02:11 pm (UTC)
From: [identity profile] 109.livejournal.com
Можно. Через разименование.

ну вот видишь. то есть в процессе нормального использования.

Но такие вещи уже в принципе не ловятся at compile time

ну как же. типизованный же пойнтер. вводится специальный модификатор типа, который будет запрещать нулевые и неинициализированные пойнтеры, и все дела. ты сходи по сслыке-то.

запихать в переменную условно некорректное значение

именно. если у тебя по семантике для этого пойнтерного типа null - это некорректное значение, то это надо явно объявить. пусть компилятор ошибки ловит.

Profile

109: (Default)
109

March 2019

S M T W T F S
     12
3456789
101112131415 16
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags