C menunjuk sebagai paradoks linguistik

Baru-baru ini, seorang teman saya, yang saya kenal tidak sama sekali di lingkaran programmer, meminta saya untuk membantunya dengan lab C ++. Kodenya kira-kira seperti ini:

void do_something(MyObj *input[], int count)
{
    MyObj **copy = new MyObj*[count];
    for (int i = 0; i < count; ++i)
        *copy[i] = *input[i];
    ...
}

, , — , «» , , , . , , — .

, , :



?
, C/C++, .

. , « », . , :

  • = , .
  • = , = , , .
  • = , = , , = , , , .

, — — C/C++ :

  • MyClass* = MyClass.
  • MyClass** = MyClass* = MyClass.
  • MyClass*** = MyClass** = MyClass* = MyClass.

, .

  • = , = .
  • = = , = .

, (= , , ) . , — .

, : «» «» , «», , .

C/C++: , « T», «T*», ( ), , , , T (, , T&, lvalue ). ( ) ,

  • *(T*) === T,
  • *(T**) === T*,
  • **(T**) === T,
  • *(T***) === T**,
  • .

? . , - C/C++ . , — … .

Source: https://habr.com/ru/post/id417257/


All Articles