JohnnyBigert.se
 startsida    |     om mig    |     tjänster    |     gratis C++-tips    |     forskning    |     kontakt     ||   blogg
Smarta
C++-tips
 
 
Behöver ni experthjälp
inom C++?
 
 

Testa dig själv, fråga 1:

I Kodexempel 1 ser du ett program. Men kompilerar det? Och i så fall, vad händer när man kör det?

#include <iostream>

class A {};
class B : public A {};

void bar(const A &) { std::cout << "A"; }
void bar(const B &) { std::cout << "B"; }

int
main()
{
    A a;
    B b;
    A &ref_to_a = a;
    A &ref_to_b = b;

    bar(a);
    bar(b);
    bar(ref_to_a);
    bar(ref_to_b);

    return 0;
}

Kodexempel 1: Testa dig själv! Vad gör programmet?

Alltså, kompilerar programmet? Och i så fall, vad händer när man kör programmet?

  • a) Det kompilerar inte.
  • b) Det kompilerar, men det länkar inte.
  • c) Det kompilerar, länkar och skriver ut "ABAB" när det kör.
  • d) Det kompilerar, länkar och skriver ut "ABAA" när det kör.
  • e) Det kompilerar, länkar och skriver ut "AAAA" när det kör.
  • f) Det kompilerar, länkar och skriver ut något annat än (c), (d) och (e).
  • g) Det kompilerar och länkar men kraschar när det kör.

Svaret finns att läsa här!


 
© Johnny Bigert Data | De la Gardies gränd 22, 135 63 Tyresö | 076-782 74 00
johnny@johnnybigert.se | www.johnnybigert.se