Ошибка: ожидаемый конструктор, деструктор или преобразование типов прежде''; маркер?

Другие ответы относительно использования nvl () корректны однако, ни один, кажется, не обращается к более угловой точке:

Должен, Вы даже иметь АННУЛИРУЕТЕ в этом столбце?

у них есть значение кроме 0?

Это походит на случай, где у Вас должно быть ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ NOT NULL 0 на th ecolumn

17
задан Owen Pierce 15 October 2009 в 15:36
поделиться

4 ответа

Одним словом: НЕТ!

Давайте посмотрим на:

sub ucwords{
    $str = @_[0];
    $str = lc($str);
    $str =~ s/\b(\w)/\u$1/g;
    return $str;
}

Прежде всего, вы не используете строгий . Используй это. Это для вашего же блага.

Во-вторых, вы не используете предупреждения . Используй это. Это для вашего же блага. Например, первый элемент @_ следует указывать с помощью $ _ [0] и , а не @_ [0] .

] В-третьих, вы должны привыкнуть время от времени читать список часто задаваемых вопросов, прежде чем снова изобретать колесо: Вы пытаетесь вызвать GetMonth, но на глобальном уровне программа на C ++ состоит из серии объявлений. Поскольку вызов функции не является объявлением, он не может существовать изолированно на глобальном уровне. У вас может быть объявление, которое также является определением, и в этом случае оно может вызывать функцию как часть инициализации.

Сам по себе вызов функции должен содержаться в какой-либо другой функции:

#ifdef TEST
int main() { 
    GetMonth();
}
#endif
24
ответ дан 30 November 2019 в 10:36
поделиться

В C / C ++ вы не можете просто добавить исполняемый код в тело заголовка. или файл реализации (.c, .cpp, .cxx и т. д.). Вместо этого вы должны добавить его в функцию. Если вы хотите, чтобы код запускался при запуске, обязательно добавьте его в основной метод.

int main(int argc, char *argv[]) {
  GetMonth();
}
6
ответ дан 30 November 2019 в 10:36
поделиться

(В дополнение к другим ответам.) Чтобы вызвать функцию GetMonth (), вы должны либо вызвать ее из другой функции ('main', либо из того, что вызывается из 'main' ) или используйте его в выражении инициализатора объекта, объявленного в области пространства имен, как в

double global_dummy = GetMonth();

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

19
ответ дан 30 November 2019 в 10:36
поделиться

Программы C ++ не выполняются в глобальном контексте. Это означает, что вам нужно поместить вызов GetMonth в функцию для ее запуска. int main () {} может подойти.

3
ответ дан 30 November 2019 в 10:36
поделиться
Другие вопросы по тегам:

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