Neuvoa C :aan ja luokkien välisiin suhteisiin.
Eli jos tehtävänä on tehdä luokat: Opiskelija, Kurssi ja Kurssilleilmoittautuminen eli ajatus että Opiskelija ilmoittautuu Kurssille niin onko kyseessä assosiaatio vai kooste? Itse ajattelin että tuo olisi assosiaatio (Kurssilla on opiskelijoita), mutta kait tuo voi olla koostekin (Kurssi koostuu opiskelijoista).
Ja miten tuollainen toteutetaan erillisen luokan kautta? Olisiko jollakulla hyviä neuvoja tai antaa linkkiä hyvään esimerkkiin.
assosiaatio ja erillinen assosiaatioluokka
29
426
Vastaukset
- jajajhshasha
Tuon mukaan assosiaatio, mutta ehkäpä sen voisi tehdä myös aggregaationakin, mutta ei missään tapauksessa kompositiona, koska kun se tuhotaan myös sen osat tuhotaan (tässä oppilaat/kurssit):
http://www.visualcase.com/kbase/associations.htm
Käytännössä ei paljon pas*ankaan väliä, koska todellisuudessa olisi kuitenkin tietokantapalvelin, josta kurssit ja opiskelijat haettaisiin sekä ilmoittautumiset hoidettaisiin.
Mutta jos tuo oli koulutehtävä niin kerrotko millainen oli mallivastaus, olisi kiva tietää.- ceeluslus
Tuo esimerkki ei ihan ollut sitä mitä kaipasin
Jos ei olisi assosiaatioluokkaa (tehtävvä käsketään tekemään), mutta assosiaatio olisi Kurssin ja Opiskelijan välillä tekisin ihan normaaliin tapaan ilman tuota yhteyssuhdeluokkaa
Nyt tuossa assosiaatioluokassa on erillisiä muuttujia (tosin samaa tietoa sisältäviä muuttujia on myös noissa toisissa luokissa), joten oppikirjankin (C ja olio-ohjelmointi) mukaan pitää tehdä erillinen assosiaatioluokka (yhteyssuhdeluokka). Lisäksi pitää tehdä osoittimet/viittaukset suhteessa oleviin luokkiin.
Mutta mitä sitten? Mitä funktioita tuohon yhteyssuhdeluokkaan (assosiaatioluokkaan) pitää tehdä että tästä saa jotain järkevää aikaiseksi? - Ufoo
ceeluslus kirjoitti:
Tuo esimerkki ei ihan ollut sitä mitä kaipasin
Jos ei olisi assosiaatioluokkaa (tehtävvä käsketään tekemään), mutta assosiaatio olisi Kurssin ja Opiskelijan välillä tekisin ihan normaaliin tapaan ilman tuota yhteyssuhdeluokkaa
Nyt tuossa assosiaatioluokassa on erillisiä muuttujia (tosin samaa tietoa sisältäviä muuttujia on myös noissa toisissa luokissa), joten oppikirjankin (C ja olio-ohjelmointi) mukaan pitää tehdä erillinen assosiaatioluokka (yhteyssuhdeluokka). Lisäksi pitää tehdä osoittimet/viittaukset suhteessa oleviin luokkiin.
Mutta mitä sitten? Mitä funktioita tuohon yhteyssuhdeluokkaan (assosiaatioluokkaan) pitää tehdä että tästä saa jotain järkevää aikaiseksi?Et sunkaan sä vaan ole lukenut Paginan Oliohjelmointia? Se kasvihuone ei varmana ikinä ainakaan säädön puoleen lähtenyt toimimaan. Ihan ufoo atk-juttuu
- ceeluslus
Ufoo kirjoitti:
Et sunkaan sä vaan ole lukenut Paginan Oliohjelmointia? Se kasvihuone ei varmana ikinä ainakaan säädön puoleen lähtenyt toimimaan. Ihan ufoo atk-juttuu
wtf?
- ceeluslus
ceeluslus kirjoitti:
Tuo esimerkki ei ihan ollut sitä mitä kaipasin
Jos ei olisi assosiaatioluokkaa (tehtävvä käsketään tekemään), mutta assosiaatio olisi Kurssin ja Opiskelijan välillä tekisin ihan normaaliin tapaan ilman tuota yhteyssuhdeluokkaa
Nyt tuossa assosiaatioluokassa on erillisiä muuttujia (tosin samaa tietoa sisältäviä muuttujia on myös noissa toisissa luokissa), joten oppikirjankin (C ja olio-ohjelmointi) mukaan pitää tehdä erillinen assosiaatioluokka (yhteyssuhdeluokka). Lisäksi pitää tehdä osoittimet/viittaukset suhteessa oleviin luokkiin.
Mutta mitä sitten? Mitä funktioita tuohon yhteyssuhdeluokkaan (assosiaatioluokkaan) pitää tehdä että tästä saa jotain järkevää aikaiseksi?C ja olio-ohjelmointi kirjaassa on esimerkki luvussa 21...Mies ja Nainen ja Avioliitto. Otin esimerkkiin liittyvät souret ja headerit ja tein projektin. Mutta se ei toimi. Herjaa error C2440: '=' : cannot convert from 'const Henkilo *' to 'Henkilo *' (on se hieno kun ei esiemrkit toimi. yritä siinä sitten opsiella.)
- ceeluslus
ceeluslus kirjoitti:
C ja olio-ohjelmointi kirjaassa on esimerkki luvussa 21...Mies ja Nainen ja Avioliitto. Otin esimerkkiin liittyvät souret ja headerit ja tein projektin. Mutta se ei toimi. Herjaa error C2440: '=' : cannot convert from 'const Henkilo *' to 'Henkilo *' (on se hieno kun ei esiemrkit toimi. yritä siinä sitten opsiella.)
tässä siiis Henkilo-luokasta oliot mies ja nainen ja olioilla yhteyssuhdeluokka.
- Muisto vain
ceeluslus kirjoitti:
wtf?
Tuli jotenkin mieleen: itsekin olio-ohjelmointiin tutustuessani törmäsin Paginan tuotantoihin ja aloin pikkuhiljaa ihmetellä, mistä niitä oikein tulee. Niissäkin oli fraseerattu kaikenmaailman hienoilla atk-termeillä, mutta valmista ei tullut mistään.
- Ei oo vaikee muunnos
ceeluslus kirjoitti:
C ja olio-ohjelmointi kirjaassa on esimerkki luvussa 21...Mies ja Nainen ja Avioliitto. Otin esimerkkiin liittyvät souret ja headerit ja tein projektin. Mutta se ei toimi. Herjaa error C2440: '=' : cannot convert from 'const Henkilo *' to 'Henkilo *' (on se hieno kun ei esiemrkit toimi. yritä siinä sitten opsiella.)
kirjoita siihen koodiin (Henkilo)
- aapeli.
Ei oo vaikee muunnos kirjoitti:
kirjoita siihen koodiin (Henkilo)
Ei ihan noin, pitää olla (Henkilo*), tai sitten vain ottaa constit pois.
- kjajkasjka
ceeluslus kirjoitti:
tässä siiis Henkilo-luokasta oliot mies ja nainen ja olioilla yhteyssuhdeluokka.
Eikös tuosta assosiaatioluokasta voi ottaa mallia? Laitako ko. luokan koodin tänne, ihan mielenkiinnosta vain että kuinka on tehty.
- lksajasdas
ceeluslus kirjoitti:
Tuo esimerkki ei ihan ollut sitä mitä kaipasin
Jos ei olisi assosiaatioluokkaa (tehtävvä käsketään tekemään), mutta assosiaatio olisi Kurssin ja Opiskelijan välillä tekisin ihan normaaliin tapaan ilman tuota yhteyssuhdeluokkaa
Nyt tuossa assosiaatioluokassa on erillisiä muuttujia (tosin samaa tietoa sisältäviä muuttujia on myös noissa toisissa luokissa), joten oppikirjankin (C ja olio-ohjelmointi) mukaan pitää tehdä erillinen assosiaatioluokka (yhteyssuhdeluokka). Lisäksi pitää tehdä osoittimet/viittaukset suhteessa oleviin luokkiin.
Mutta mitä sitten? Mitä funktioita tuohon yhteyssuhdeluokkaan (assosiaatioluokkaan) pitää tehdä että tästä saa jotain järkevää aikaiseksi?Varmaan jotain lisää, poista, hae. Kai siinä on vektori johon talletat?
- ceeluslus
aapeli. kirjoitti:
Ei ihan noin, pitää olla (Henkilo*), tai sitten vain ottaa constit pois.
Jep otin nuo const ihan ensiksi pois, niin virheitä on nyt sitäkin enemmän.
Otin tosin tuosta mallia ja tein oman yksinkertaisemman mallin, joka toimii. Nyt sitä pitäisi vaan yrittää kehittää vielä lisää... - ceeluslus
kjajkasjka kirjoitti:
Eikös tuosta assosiaatioluokasta voi ottaa mallia? Laitako ko. luokan koodin tänne, ihan mielenkiinnosta vain että kuinka on tehty.
Voi ottaa ja otinkin. Nyt on oma toimiva yksinkertainen, jota tosin pitää alkaa kehittää toimimaan enemmän tehtävänkuvauksen mukaiseksi.
Koodia en laita, kun tämä on niin surkea foorumi jakaa koodia. - ceeluslus
lksajasdas kirjoitti:
Varmaan jotain lisää, poista, hae. Kai siinä on vektori johon talletat?
Ei ole vektoria, eikä tule :)
Tuostahan voi siis tehdä ihan mitä vain mutta aika ja osaaminen rajoitttaa aika lailla. - Ei oo vaikee
ceeluslus kirjoitti:
Jep otin nuo const ihan ensiksi pois, niin virheitä on nyt sitäkin enemmän.
Otin tosin tuosta mallia ja tein oman yksinkertaisemman mallin, joka toimii. Nyt sitä pitäisi vaan yrittää kehittää vielä lisää...Pölkkypäät! Sille luokalle pitää määrittää sijoitusoperaattori, joka saa oparametrikseen pointterin. Mutta jos ei halua pelailla pointteilla, kirjoittaa vain: Joku=(Henkilö)JokuOpiskelijaheebo; Joku on tyyppiä Henkilö
- aapeli.
ceeluslus kirjoitti:
Jep otin nuo const ihan ensiksi pois, niin virheitä on nyt sitäkin enemmän.
Otin tosin tuosta mallia ja tein oman yksinkertaisemman mallin, joka toimii. Nyt sitä pitäisi vaan yrittää kehittää vielä lisää...Siis joko näin lisäämällä se (Henkilo*):
class Avioliitto
{
Henkilo *mies;
Henkilo *vaimo;
public:
Avioliitto(const Henkilo *, const Henkilo *);
void Nayta();
~Avioliitto();
};
Avioliitto::Avioliitto(const Henkilo *p_mies, const Henkilo *p_vaimo)
{
mies = (Henkilo*)p_mies;
vaimo = (Henkilo*)p_vaimo;
}
int main(int argc, char *argv[])
{
Henkilo nainen("Maija", "Meikäläinen", 1, 3, 70);
Henkilo mies("Tatu", "Teikäläinen", 2, 4, 68);
Avioliitto liitto(&mies, &nainen);
liitto.Nayta();
return 0;
}
Tai näin ottamalla constit poijes:
class Avioliitto
{
Henkilo *mies;
Henkilo *vaimo;
public:
Avioliitto(Henkilo *, Henkilo *);
void Nayta();
~Avioliitto();
};
Avioliitto::Avioliitto(Henkilo *p_mies, Henkilo *p_vaimo)
{
mies = p_mies;
vaimo = p_vaimo;
}
int main(int argc, char *argv[])
{
Henkilo nainen("Maija", "Meikäläinen", 1, 3, 70);
Henkilo mies("Tatu", "Teikäläinen", 2, 4, 68);
Avioliitto liitto(&mies, &nainen);
liitto.Nayta();
return 0;
}
- cee lus lus
Miten tallennan tällaisesta noiden Opiskelija *p_opiskelija, Kurssi *p_kurssi sisältämät tiedot?
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
int i=0;
int montako=1;
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
for(i=0;im_opiskelijanimi, sizeof(Opiskelija) );
//tiedKirj.write( (char*) &ilmoittautumiset[i].opiskelija->m_opiskelijanimi, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
}
tiedKirj.close();
}- cee lus lus
oho, ei ihan copy-paste siirtynytkän oikein... mm. for-loopin ehdot ja { }
mutta siis noide Opiskelija ja Kurssi tyypisten osoittimien sisältämät tiedot...niissä tulee tietoa matkassa, mutta yrittää vaikka mitä niin joko ne ei silti tulostu tiedostoon tai sitten tulee vika herjaa. - Ehkä niinkin
cee lus lus kirjoitti:
oho, ei ihan copy-paste siirtynytkän oikein... mm. for-loopin ehdot ja { }
mutta siis noide Opiskelija ja Kurssi tyypisten osoittimien sisältämät tiedot...niissä tulee tietoa matkassa, mutta yrittää vaikka mitä niin joko ne ei silti tulostu tiedostoon tai sitten tulee vika herjaa.Kannattaa enste tulostaa tekstinä, että mekin nähdään, mitä sinne tiedostoon kirjoittuu.
- zaqwsxder
cee lus lus kirjoitti:
oho, ei ihan copy-paste siirtynytkän oikein... mm. for-loopin ehdot ja { }
mutta siis noide Opiskelija ja Kurssi tyypisten osoittimien sisältämät tiedot...niissä tulee tietoa matkassa, mutta yrittää vaikka mitä niin joko ne ei silti tulostu tiedostoon tai sitten tulee vika herjaa.Vissiin menny aika sotkuksi tuo koodi, joten paha sanoa mikä mättää. Koita ensin vaikka ilman tuota for looppia, puuttuuko siitä ; ja näyttäisi olevan ; sen perässä, jolloin ei se oikeasti tee mitään.
- cee lus lus
zaqwsxder kirjoitti:
Vissiin menny aika sotkuksi tuo koodi, joten paha sanoa mikä mättää. Koita ensin vaikka ilman tuota for looppia, puuttuuko siitä ; ja näyttäisi olevan ; sen perässä, jolloin ei se oikeasti tee mitään.
Siis tuossa tapahtui copy-pastettaessa tämän paskan foorumisoftan takia jotain outoa. For loopi ja muut on kunnossa mutta en ymmärrä miten olio osoittimesta saadaan tietoa tulostettua?
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
int i=0;
int montako=1;
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
for(i=0;im_opiskelijanimi, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
}
tiedKirj.close();
} - ceeluslus
cee lus lus kirjoitti:
Siis tuossa tapahtui copy-pastettaessa tämän paskan foorumisoftan takia jotain outoa. For loopi ja muut on kunnossa mutta en ymmärrä miten olio osoittimesta saadaan tietoa tulostettua?
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
int i=0;
int montako=1;
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
for(i=0;im_opiskelijanimi, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
}
tiedKirj.close();
}ja vittu taas voi perseensuti että perseestä tämä foorumin softa....
For on siis näin
for i=0 im_opiskelijanimi, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
} - cee lus lus
ceeluslus kirjoitti:
ja vittu taas voi perseensuti että perseestä tämä foorumin softa....
For on siis näin
for i=0 im_opiskelijanimi, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
}ei saaatana, vituilleen taas vaikak yritin muokata noita "erikoismerjkkjä"... Vittu viimeinen kerta siinäpähän saatana on jos ei vittu tämä saatanan vitun persereikä ffoorumisoftaa voi toimia fiksusti.
se for looppi on oikein!
for i=0 im_opiskelijanimi, sizeof(Opiskelija) );
vai
//tiedKirj.write( (char*) &ilmoittautumiset[i].opiskelija, sizeof(Opiskelija) );
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
int i=0;
int montako=1;
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
for(i=0;im_opiskelijanimi, sizeof(Opiskelija) );
//tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
}
tiedKirj.close();
} - cee lus lus
cee lus lus kirjoitti:
ei saaatana, vituilleen taas vaikak yritin muokata noita "erikoismerjkkjä"... Vittu viimeinen kerta siinäpähän saatana on jos ei vittu tämä saatanan vitun persereikä ffoorumisoftaa voi toimia fiksusti.
se for looppi on oikein!
for i=0 im_opiskelijanimi, sizeof(Opiskelija) );
vai
//tiedKirj.write( (char*) &ilmoittautumiset[i].opiskelija, sizeof(Opiskelija) );
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
int i=0;
int montako=1;
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
for(i=0;im_opiskelijanimi, sizeof(Opiskelija) );
//tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
}
tiedKirj.close();
}for i on 0 i on pienempi kuin montako i plus plus
saatana - cee lus lus
cee lus lus kirjoitti:
for i on 0 i on pienempi kuin montako i plus plus
saatanatiedKirj.write( (char*) &ilmoittautumiset[i].opiskelija->m_opiskelijanimi, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].opiskelija, sizeof(Opiskelija) ); - cee lus lus
cee lus lus kirjoitti:
for i on 0 i on pienempi kuin montako i plus plus
saatanaeikä ole puolipistettä perässä ja on kaarisulut. siis for-loopissa.
miten siis Opiskelija tyyppisen opiskelija-olion osoittimesta tietoa ulos....talllennettavaksi tiedostoon? - aapeli.
cee lus lus kirjoitti:
eikä ole puolipistettä perässä ja on kaarisulut. siis for-loopissa.
miten siis Opiskelija tyyppisen opiskelija-olion osoittimesta tietoa ulos....talllennettavaksi tiedostoon?Siis jotenkin näin se on sulla?
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
int i=0;
int montako=1;
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
for(i=0;im_opiskelijanimi, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].opiskelija, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
}
tiedKirj.close();
}
Mitä herjoja tulee?
Toimisiko ihan vain näin?
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
if (tiedKirj.is_open() {
tiedKirj.write( (char*) p_opiskelija, sizeof(*p_opiskelija) );
tiedKirj.write( (char*) p_kurssi, sizeof(*p_kurssi) );
tiedKirj.close();
}
}
Mitään selväkielistä tekstitiedostoa tuolla ios::binary avauslipulla ei tule. - cee lus lus
aapeli. kirjoitti:
Siis jotenkin näin se on sulla?
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
int i=0;
int montako=1;
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
for(i=0;im_opiskelijanimi, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].opiskelija, sizeof(Opiskelija) );
tiedKirj.write( (char*) &ilmoittautumiset[i].kurssi, sizeof(Kurssi) );
}
tiedKirj.close();
}
Mitä herjoja tulee?
Toimisiko ihan vain näin?
void Ilmoittautuminen::TallennaTiedostoon(Opiskelija *p_opiskelija, Kurssi *p_kurssi)
{
ofstream tiedKirj("Ilmoittautumiset.txt",ios::binary|ios::app); //out=app
if (tiedKirj.is_open() {
tiedKirj.write( (char*) p_opiskelija, sizeof(*p_opiskelija) );
tiedKirj.write( (char*) p_kurssi, sizeof(*p_kurssi) );
tiedKirj.close();
}
}
Mitään selväkielistä tekstitiedostoa tuolla ios::binary avauslipulla ei tule.siis sehän on binääritiedosto. Sehän ei silloin ole välttämättä ihan järkevän näköistä. Saan esim. tallennetua luokkien jäsenmuuttujia jne., mutta nyt kun pitäisi assosiaatioon liittyen saada tallennettua noissa opiskelija ja kurssi olevaa tietoa niin ei tallennu mitään. p_opiskelijassa olisi opiskelijan_nimi ja kurssissa kurssin_nimi.
tuolla minun koodilla sinne ei tallennu yhtään mitään eli se on täysin tyhjä.
Muistelisin kokeilleeni mallisi mukaan , mutta pitää kokeilla uudestaan. - aapeli.
cee lus lus kirjoitti:
siis sehän on binääritiedosto. Sehän ei silloin ole välttämättä ihan järkevän näköistä. Saan esim. tallennetua luokkien jäsenmuuttujia jne., mutta nyt kun pitäisi assosiaatioon liittyen saada tallennettua noissa opiskelija ja kurssi olevaa tietoa niin ei tallennu mitään. p_opiskelijassa olisi opiskelijan_nimi ja kurssissa kurssin_nimi.
tuolla minun koodilla sinne ei tallennu yhtään mitään eli se on täysin tyhjä.
Muistelisin kokeilleeni mallisi mukaan , mutta pitää kokeilla uudestaan.Se mitä tallettuu riippuu siitäkin onko ne nimet sielä luokassa määritelty char taulukoiksi jolloin nimet tallettuu, vai osoittimena jolloin tallettuukin pointteri, muistiosoite.
Tuossa koodissani näkyy puuttuvan sulje tiedKirj.is_open() ehdossa.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Aivosyöpää sairastava Olga Temonen TV:ssä - Viimeinen Perjantai-keskusteluohjelma ulos
Näyttelijä-yrittäjä Olga Temonen sairastaa neljännen asteen glioomaa eli aivosyöpää, jota ei ole mahdollista leikata. Hä912910Pelotelkaa niin paljon kuin sielu sietää.
Mutta ei mene perille asti. Miksi Venäjä hyökkäisi Suomeen? No, tottahan se tietenkin on jos Suomi joka ei ole edes soda2991686Mikä saa ihmisen tekemään tällaista?
Onko se huomatuksi tulemisen tarve tosiaan niin iso tarve, että nuoruuttaan ja tietämättömyyttään pilataan loppuelämä?2461557- 871391
IL - VARUSMIEHIÄ lähetetään jatkossa NATO-tehtäviin ulkomaille!
Suomen puolustuksen uudet linjaukset: Varusmiehiä suunnitellaan Nato-tehtäviin Puolustusministeri Antti Häkkänen esittel4021384Nyt kun Pride on ohi 3.0
Edelliset kaksi ketjua tuli täyteen. Pidetään siis edelleen tämä asia esillä. Raamattu opettaa johdonmukaisesti, että4001307Kiitos nainen
Kuitenkin. Olet sitten ajanmerkkinä. Tuskin enää sinua näen ja huomasitko, että olit siinä viimeisen kerran samassa paik21089Esko Eerikäinen tatuoi kasvoihinsa rakkaan nimen - Kärkäs kommentti "Ritvasta" lävähti somessa
Ohhoh! Esko Eerikäinen on ottanut uuden tatuoinnin. Kyseessä ei ole mikä tahansa kuva minne tahansa, vaan Eerikäisen tat381037Hyväksytkö sinä sen että päättäjämme ei rakenna rauhaa Venäjän kanssa?
Vielä kun sota ehkäpä voitaisiin välttää rauhanponnisteluilla niin millä verukkeella voidaan sanoa että on hyvä asia kun329874Miksi Purra-graffiti ei nyt olekkaan naisvihaa?
"Pohtikaapa reaktiota, jos vastaava graffiti olisi tehty Sanna Marinista", kysyy Tere Sammallahti. Helsingin Suvilahden257855