Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

C++ -kielen kehityksestä (muuttumisestako?)

24 views
Skip to first unread message

Juhani Ylikoski

unread,
Dec 15, 2012, 9:38:34 AM12/15/12
to
Minulla on käsissäni Stanley B. Lippmanin C++ Primer, 2nd Edition,
sekä Stephen Pratan kirja C++ Ohjelmointi.

Pratan kirjan sain yhdellä eurolla radioamatöörien syyskokouksesta,
mutta se on aika wanha -- vuodelta 1994.

Lippmanin kirja on vuodelta 1995. (Minulla on LUKEMATTOMIA kirjoja
hyllyssäni!)

Onko nyt niin, että C++ on vuosien varrella muuttunut niin, että
näiden kirjojen käyttö C++:n harjoitteluun on mahdotonta? Allaoleva
ohejlma on suoraan Pratan kirjasta, mutta se ei toimi Linux/GNU:n g++
-kääntäjän kanssa:

------------------------------------------------------------

// new-operaattori; osoittimia. AJY 2012-12-15.
//


#include <iostream>

int main(void)
{
int *pi = new int;
*pi = 1001;

std::cout << "int ";
std::cout << "arvo = " << *pi << "sij = " << (unsigned) pi "\n";

double *pd = new double;
*pd = 100000001.0;

std::cout << "double";
std::cout << "arvo: " << *pd << ": osoit = " << (unsigned) pd << "\n";

std::cout << "Pi:n koko = " << sizeof pi <<"\n";
std::cout << "*Pi:n koko = " << sizeof *pi <<"\n";

std::cout << "Pd:n koko = " << sizeof pd <<"\n";
std::cout << "*Pd:n koko = " << sizeof *pd <<"\n";
return 0;
}

------------------------------------------------------------

Virheilmoituskin, mikä tulee, on täysin mystinen:

"Expected ';' before string constant on Line 13

Quis on, wizardit?

t DI (PhD student) Antti Ylikoski
Aalto-yliopisto
Helsinki

Juhani Ylikoski

unread,
Dec 15, 2012, 9:48:28 AM12/15/12
to
Nyt mä vähän hukkasin network bandwidthiä -- tuosta yo. ohjelmasta
puuttuu yksi "<<" -operaattori.

Mut sitä kyllä kysyn, onko C++ todella muuttunut niinkuin voisi olettaa:
esimerkiksi tuo

#include <iostream.h>

jonka pitikin olla

#include <iostream>

oli suoraan Pratan kirjasta, ja se olikin väärin.

t Antti Ylikoski

Jouko Holopainen

unread,
Dec 15, 2012, 1:46:47 PM12/15/12
to
On 12/15/2012 04:48 PM, Juhani Ylikoski wrote:
> Mut sitä kyllä kysyn, onko C++ todella muuttunut niinkuin voisi olettaa:
> esimerkiksi tuo
>
> #include <iostream.h>
>
> jonka pitikin olla
>
> #include <iostream>
>
> oli suoraan Pratan kirjasta, ja se olikin väärin.

On se.

Valitettavasti kieli on yhä huono, vain vähän parempi kuin C.

--
@jhol

www.iki.fi/jhol

Juhani Ylikoski

unread,
Dec 15, 2012, 3:05:56 PM12/15/12
to
Niin. Näin on.

Jos kyseessä on vanhasta C:stä periytyvä #include -tiedosto, niin pitää olla

#include <math.h>

mutta jos onkin C++ :an oma #include -file, niin pitää olla

#include <iostream>

Mamma mia.....

t DI Antti Ylikoski
Aalto-yliopisto
Helsinki/Espoo

Otto J. Makela

unread,
Dec 16, 2012, 6:02:36 AM12/16/12
to
Jouko Holopainen <jh...@iki.invalid.fi> wrote:

> Valitettavasti kieli [C++] on yh� huono, vain v�h�n parempi kuin C.

Jotkut ovat sit� mielt� ett� C++ on askel huonompaan suuntaan,
kauemmas raudasta. "Huonous" on hyvin subjektiivinen k�site.
--
/* * * Otto J. Makela <o...@iki.fi> * * * * * * * * * */
/* Phone: +358 40 765 5772, ICBM: N 60 10' E 24 55' */
/* Mail: Mechelininkatu 26 B 27, FI-00100 Helsinki */
/* * * Computers Rule 01001111 01001011 * * * * * * */

Timo Korvola

unread,
Jan 18, 2013, 5:07:00 PM1/18/13
to
Juhani Ylikoski <antti.y...@elisanet.fi> writes:
> Jos kyseessä on vanhasta C:stä periytyvä #include -tiedosto, niin pitää olla
>
> #include <math.h>

Itse asiassa nykyisin "#include <cmath>" ja vastaavasti muille C:n
standardikirjaston headereille. Muissa kuin standardikirjastojen
headereissa taas yleensä on jokin pääte: esim. Boost käyttää .hpp:tä.

--
Timo Korvola <URL:http://www.iki.fi/tkorvola>
0 new messages