Действительно ли возможно объявить класс, не реализовывая его? (C++)

Вам потребуется использовать службу «обратного геокодирования», например API Google: https://developers.google.com/maps/documentation/geocoding/start . Есть и другие ... просто Google для "геокодирования".

Обновление: очевидно, есть и локальный API. См .: https://pub.dartlang.org/packages/geocoder

.

8
задан aiao 13 December 2012 в 15:49
поделиться

6 ответов

Да, это возможно. Следующее просто объявляет wsx

class wsx;

Такое объявление называется прямым объявлением, потому что оно необходимо, когда два класса ссылаются друг на друга:

class A;
class B { A * a; };

class A { B * b; };

Один из них должен быть объявлен вперед.

19
ответ дан 5 December 2019 в 06:10
поделиться

Это определение класса

class wsx
{
public:
wsx();
}

Это определение конструктора

wsx::wsx()
{
std::cout<<"WSX";
}

Это предварительное объявление, в котором говорится, что класс БУДЕТ определен где-то

class wsx;
4
ответ дан 5 December 2019 в 06:10
поделиться

Я не понимаю, что вы имеете в виду. Код, который вы вставили, выглядит правильно.

-1
ответ дан 5 December 2019 в 06:10
поделиться

Да. Но невозможно определить класс без его объявления.

Потому что: Каждое определение также является объявлением.

2
ответ дан 5 December 2019 в 06:10
поделиться

Вы определили класс. У него нет элементов данных, но это необязательно.

0
ответ дан 5 December 2019 в 06:10
поделиться

В вашем примере

class wsx; // this is a class declaration

class wsx  // this is a class definition
{
public:
wsx();
}

Итак, да, используя class wsx; , можно объявить класс без его определения. Объявление класса позволяет вам объявлять указатели и ссылки на этот класс, но не на экземпляры класса. Компилятору необходимо определение класса, чтобы он знал, сколько памяти выделить для экземпляра класса.

3
ответ дан 5 December 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: