Я использую просто:
import { NgZone } from '@angular/core';
constructor(
private zone: NgZone
) { super(); }
getLocation(address: string): void {
var mygc = new google.maps.Geocoder();
var self = this;
mygc.geocode({
'address': address
}, (results, status) => {
var data: any = results[0];
self.zone.run(() => {
self.myObject.myData = {
lat: data.geometry.location.lat(),
lng: data.geometry.location.lng()
};
});
});
Почему ошибка & amp; как его решить?
Вы должны указать определения для всех виртуальных функций в class A
. Только чистые виртуальные функции не имеют определений.
, т. е.: В class A
должны быть определены оба метода:
virtual ~A();
virtual void doWork();
(должен иметь тело)
например:
A.cpp
void A::doWork()
{
}
A::~A()
{
}
Предостережение: если вы хотите, чтобы ваш class A
выступал в качестве интерфейса (aka Абстрактный класс в C ++), тогда вы должны сделать метод чистый виртуальный.
virtual void doWork() = 0;
Хорошо Чтение:
Что означает, что «виртуальная таблица» является нерешенным внешним? При создании C ++ компоновщик говорит, что мои конструкторы, деструкторы или виртуальные таблицы не определены.
Обязательно удалите все файлы «* .gch», если ни один из ответов не поможет вам.
Моя цель состоит в том, чтобы A был интерфейсом и разделял код реализации из заголовков.
blockquote>В этом случае сделайте функцию-член чистой виртуальной в классе A.
class A { // ... virtual void doWork() = 0; };
A
должен быть виртуальным, который принудительно запускает деструктор Child
, вызываемый сначала, а затем деструктором A
. Если деструктор класса A
не является виртуальным, поведение не определено.
– Mahesh
23 February 2012 в 05:20