Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > missing function header (old-style formal list?)


Автор: jurgal 8.8.2007, 20:54
пытаюсь  запустить пример из книги на VC++ Express 
Код

#include "stdafx.h"
#include <iostream>
using namespace std;

template <class type1, class type2> 
void myfunc(type1 x,type2 y)
{
    cout << x << ' ' << y << endl;
}

int main()
{
    myfunc("8)",2);
    myfunc(3.4,45);
    return 0;
}



получаю вот такие ошибки:

Цитата

error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2899: typename cannot be used outside a template declaration
error C2899: typename cannot be used outside a template declaration
error C2143: syntax error : missing ';' before '{'
error C2447: '{' : missing function header (old-style formal list?)
error C3861: 'myfunc': identifier not found
error C3861: 'myfunc': identifier not found


книга устарела? как по новому стилю работать с шаблонами? спасибо =)

уже понял в чем ошибка) просто не внимательность моя , извиняюсь  smile 

Автор: Dogo 8.8.2007, 21:09
Замени
Код

cout << x << ' ' << y << endl;

на
Код

cout << x << " " << y << endl;


Автор: jurgal 8.8.2007, 22:01
ошибка была в опечатке в слове template) 
кстати давно хотел спросить, в чем отличие между 
Код

a = 'x' 
и 
Код

a="x"
 ???

Автор: cardinal 8.8.2007, 22:04
Первое это символ, а второе это строка. Про разницу читаем тут
http://ipg.h1.ru/lessons/ci/les42.html

Автор: Dov 9.8.2007, 08:08
Цитата(jurgal @  8.8.2007,  22:01 Найти цитируемый пост)
кстати давно хотел спросить, в чем отличие между 

Цитата(cardinal @  8.8.2007,  22:04 Найти цитируемый пост)
Первое это символ, а второе это строка.

Можно и так сказать. Но я бы сказал так.
С точки зрения языка С в первом случае а является переменной целого типа(int, char и т.п) и её значением будет целое число. Во втором случае а является указателем(в данном случае на тип char) и её значением будет адрес в памяти той переменной(константы, объекта и т.п), на которую она указывает. Т.е. в данном случае переменная а будет хранить адрес нулевого элемента строки "x". 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)