• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Konstruktor i destruktor

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
297 wizyt
pytanie zadane 13 grudnia 2016 w C i C++ przez klap Początkujący (410 p.)
edycja 13 grudnia 2016 przez klap

Cześć, potrzebujemy Waszej porady. Z konstruktorami i destruktorami mamy styczność pierwszy raz i czy moglibyście powiedzić czy poprawnie ich użyliśmy?

Prosty program ma dodawać lub mnożyć jak sobie zażyczymy. Są cztery funkcje (użyliśmy void).

argum.cpp

#include "argum.h"
#include <iostream>

using namespace std;
argum::argum()
{
 
    pierwszy_arg=a;
    drugi_arg=b;
}


void argum::wywolaj()
{
    cout<< "Podaj a : "; cin>>a;
    cout<<"Podaj b : "; cin>>b;
}

void argum::dodaj()
{
    c=a+b;
    cout<<"Wynik dodawania : "<<c;
}

void argum::mnozenie()
{
    c=a*b;
    cout<<"Wynik mnozenia : "<<c;
}

// argum::wynik(int obiekt)
//{
  //  cout<<"Podaj jaki wynik chcesz uzyskac, mnozenie (1), dodawanie (0) : "; cin>>obiekt;
//}

argum::~argum()
{
    cout<<endl;
}

 

argum.h

#ifndef ARGUM_H
#define ARGUM_H
#include <iostream>

using namespace std;

class argum
{
    public:
         argum();
        ~argum();
        void wywolaj();
       // void wynik(int obiekt);
        void dodaj();
        void mnozenie();
        int c,a,b;

    private:
        int pierwszy_arg;
        int drugi_arg;
};

#endif // ARGUM_H

 

main

#include <iostream>
#include "argum.h"

using namespace std;

int main()
{
    argum a1;
    a1.wywolaj();

    int obiekt;
    cout<<"Podaj mnozenie 1 dodawanie 0: "; cin>>obiekt;

    if (obiekt==0)
    {
        a1.dodaj();
    }
    if (obiekt==1)
    {
        a1.mnozenie();
    }
    return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 13 grudnia 2016 przez Sinnley Stary wyjadacz (12,810 p.)
Trzeci kod wrzuć do bloku i zmień nazwy tych zmiennych. Nie da się czytać kodu, w których zmienne są nazywane "aa" "a" "bb" "abcd" itp.
komentarz 13 grudnia 2016 przez klap Początkujący (410 p.)
Zmienione.
komentarz 14 grudnia 2016 przez Sinnley Stary wyjadacz (12,810 p.)

Chyba najlepiej pozbyć się funkcji wywołaj z obiektu, zrobić ją jako oddzielną, destruktora również się pozbyć skoro przechodzi tylko do nowej lini, no i wyrzucić zmienne a,b,c.

Metody niech zwracają inta, a wyniki wywołuj w mainie, np tak:

#include <iostream>

using namespace std;


class Argum
{
public:

	Argum(int, int);
	int dodaj();
	int mnozenie();

private:
	int pierwszy_arg;
	int drugi_arg;
};

void wywolaj(int&a, int&b)
{
	cout << "Podaj a: ";
	cin >> a;
	cout << "Podaj b: ";
	cin >> b;
}

int main() {

	int pierwszyArgument, drugiArgument;
	
	wywolaj(pierwszyArgument, drugiArgument);

	Argum obj(pierwszyArgument,drugiArgument);

	cout << "Wynik mnozenia to: " << obj.mnozenie() << "a dodawania: " << obj.dodaj();
	cin.get();
	return 0;
}
Argum::Argum(int a, int b) {

	pierwszy_arg = a;
	drugi_arg = b;
}
int Argum::dodaj() {
	return pierwszy_arg + drugi_arg;
}
int Argum::mnozenie() {
	return pierwszy_arg * drugi_arg;
}

Jeśli chcesz rozbić na kilka plików - śmiało.

0 głosów
odpowiedź 13 grudnia 2016 przez Dominik Kulis Użytkownik (720 p.)
Przy tworzeniu kontruktorw zalecam pisać w taki sposób

argum::argum(int a, int b)

: aa(a), bb(b)

{

}

a obiekt tworzysz:
argum a1(wartosc1, wartosc2);

 

W twoim programie nie potrzebnie tworzysz tyle zmiennych
komentarz 13 grudnia 2016 przez klap Początkujący (410 p.)
Wiem, to jest zadanie i jest nakazane tyle tworzyć. Przyznam szczerze że mam problem z tym jak wpisze argum a1(a,b); to później nie wiem jak wczytaj np void dodaj(); bo jako a1.dodaj() juz go nie wczytam

Podobne pytania

0 głosów
1 odpowiedź 850 wizyt
–4 głosów
0 odpowiedzi 511 wizyt
pytanie zadane 17 października 2017 w C i C++ przez p1erut Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 318 wizyt
pytanie zadane 14 sierpnia 2020 w C i C++ przez lujasjeden Użytkownik (860 p.)

93,185 zapytań

142,198 odpowiedzi

322,004 komentarzy

62,514 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2127p. - dia-Chann
  2. 2092p. - Łukasz Piwowar
  3. 2079p. - Łukasz Eckert
  4. 2037p. - Tomasz Bielak
  5. 2006p. - rucin93
  6. 2005p. - Łukasz Siedlecki
  7. 1964p. - CC PL
  8. 1835p. - Adrian Wieprzkowicz
  9. 1785p. - Michal Drewniak
  10. 1744p. - rafalszastok
  11. 1684p. - Mikbac
  12. 1624p. - Anonim 3619784
  13. 1520p. - Marcin Putra
  14. 1480p. - ssynowiec
  15. 1365p. - Dawid128
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...