SideC Temat założony przez niniejszego użytkownika |
Przykład 25.7 i string » 2009-07-22 09:43:02 Próbowałem poszerzyć przykład 25.7 następująco: #include <iostream> #include <conio.h> #include "nazwaPliku.hpp" using namespace std; int main() { cout << "Wynik dodawania 1 to: " << dodajLiczby( 10, 15 ) << endl; cout << "Wynik dodawania 2 to: " << dodajStringi( "s1", "s2" ) << endl; getch(); return( 0 ); }
#ifndef nazwaPliku_hpp #define nazwaPliku_hpp int dodajLiczby( int a, int b ); std::string dodajStringi( std::string s1, std::string s2 ); #endif
#include "nazwaPliku.hpp" int dodajLiczby( int a, int b ) { return( a + b ); } std::string dodajStringi( std::string s1, std::string s2 ) { return( s1 + s2 ); }
Proszę o pomoc - czego chce od projektu kompilator: "expected constructor"? |
|
pekfos |
» 2009-07-22 10:24:28 std::string?? nie znam tego - mówi kompilator dopisz w pliku .hpp |
|
eBbi |
» 2009-07-22 10:29:15 std::string?? nie znam tego - mówi kompilator no nie wiem ;P... moim zdaniem to znaczy że oczekuje konstruktora. |
|
SideC Temat założony przez niniejszego użytkownika |
» 2009-07-22 10:52:57 Dzięki, pekfos, z #include <string> działa. Wprawdzie nie rozumiem, czemu ta biblioteka w .hpp musi być (a w main.cpp - nie), ale chyba trzeba się z tym pogodzić. |
|
pekfos |
» 2009-07-22 11:08:28 bo dodając iostream dodawane do main jest także string |
|
GoldWolf |
» 2009-07-22 12:46:20 Wprawdzie nie rozumiem, czemu ta biblioteka w .hpp musi być (a w main.cpp - nie), ale chyba trzeba się z tym pogodzić.Z niczym nie musisz się godzić, dałeś #include <iostream> #include <conio.h> #include "nazwaPliku.hpp"
#ifndef nazwaPliku_hpp #define nazwaPliku_hpp int dodajLiczby( int a, int b ); std::string dodajStringi( std::string s1, std::string s2 ); #endif
#ifndef nazwaPliku_hpp #define nazwaPliku_hpp #include <iostream> #include <conio.h> #include <string> int dodajLiczby( int a, int b ); std::string dodajStringi( std::string s1, std::string s2 ); #endif
#include "nazwaPliku.hpp"
Dziwie się, że sobie nie popróbowałeś... |
|
SideC Temat założony przez niniejszego użytkownika |
» 2009-07-22 14:05:53 Dzięki Dante, w końcu to do mnie dotarło. Dzięki Fanael, myślę, że chodziło o zasadę.
|
|
manfred |
» 2009-07-22 12:42:25 Ta, a do <valarray> dodawane jest <locale>. Nie ma tak - jeśli dołączysz <iostream>, to <string> też musisz dołączyć. Przynajmniej jeśli kod ma się kompilować pod większą liczbą kompilatorów niż jedną wersją jednego kompilatora pod jeden system operacyjny. //Wiem, że strumienie iostreamowe muszą mieć char_traits, a standard mówi, że to jest w <string>. Nie, nie ma tak fajnie - char_traits może być położone w oddzielnym headerze, który jest dołączany w <string> i <iostream>. Wszystkie zależności headerów biblioteki standardowej są, nomen omen, zależne tylko i wyłącznie od implementacji. //Fanael |
|
« 1 » 2 |