#include <iostream>
using namespace std;

class Drib {
public:
    int chysel;
    int zaym;
    Drib() { chysel = 0, zaym = 0; }
    Drib(int chysel_, int zaym_) : chysel(chysel_), zaym(zaym_) {};
    Drib plus(Drib p1, Drib  p2);

    void print() {
        cout << chysel << "/" << zaym;
    }
};
Drib plus(Drib p1, Drib  p2) {
    if (p1.zaym == p2.zaym) {
        return Drib(p1.chysel + p2.chysel, p1.zaym);
    }
    else if (p1.zaym!=p2.zaym) {
        int zaym_s = p1.zaym * p2.zaym;
        int chysel_s = (zaym_s / p1.zaym * p1.chysel) + (zaym_s / p2.zaym * p2.chysel);
        return Drib(chysel_s,zaym_s);
    }
}
int main() {
    Drib m1(2, 3);
    Drib m2(5, 3);
    Drib m3 = plus(m1, m2); // тут видає помилку та пише що plus is ambigious, як це можна виправити?
    m3.print();
}

2

(9 відповідей, залишених у C++)

пище ще помилку типу String::String(void): member function already defined or declared,
я трохи змінила код

#include <iostream>
using namespace std;
class String {
public:
    static int amount;
    char string;
    int size;
    String() : string(80) {}
    String() {
        int size = 0;
        char *string = new char[size + 1];
    }
    String(char *stringus) {
        string = *stringus;
    }
    ~String() {
        delete[] &string;
    }
    void input() {
        cout << "Enter the 1 string: ";
        fgets(&string, 80, stdin);
        amount++;
    }
    void print() { cout << amount << "\nstring1: " << string; }
};
int String::amount = 0;
int main() {
    String s;
    s.input();
    s.print();
}

3

(9 відповідей, залишених у C++)

перекидає в розділ xstring та виводить ось це: Exception thrown at 0x00007FFBE65C7A41 (ucrtbased.dll) in ConsoleApplication15.exe: 0xC0000005: Access violation reading location 0x0000000000000000.

4

(9 відповідей, залишених у C++)

#include <iostream>
using namespace std;
class String {
public:
    static int amount;
    char *string;
    char *string2;
    char *string3;
    int size;
    String() {
        string = new char[81];
    }
    String() : string2(nullptr), string3(nullptr), size(80) { }
    String(int size_, char* string3_) :size(size_), string3(string3_) { }
    ~String() {
        delete[] string;
        delete[] string2;
        delete[] string3;
    }
    void input() {
        cout << "Enter the 1 string: ";
        fgets(string, 80, stdin); 
        cout << "\nEnter the 2 string: ";
        fgets(string2, size, stdin);
        cout << "\nEnter the 3 string: ";
        fgets(string, size, stdin);
        amount++;
    }
    void print() { cout << amount << "\nstring1: " << string << "\nstring2: " << string2 << "string3: " << string3 << "\n"; }
};
int String::amount = 0;
int main() {
    String s;
    s.input();
    s.print();
}

Код не працює так як потрібно, я можу записати тільки перший рядок два наступних він пропуска і вибиває помилку.
ось завдання Завдання: Розробити клас String, який в подальшому будемо використовувати для роботи з рядками. Клас повинен містити:

  • Конструктор за замовчуванням, що дозволяє створити рядок довжиною 80 символів;

  • Конструктор, що дозволяє створювати рядок довільного розміру;

  • Конструктор, який створює рядок і ініціалізує його рядком, отриманим від користувача.

Необхідно створити деструктор. Клас повинен містити методи для введення рядків з клавіатури і виведення рядків на екран. Також потрібно реалізувати статичну функцію-член, яка буде повертати кількість створених об’єктів рядків.

Від модератора: тему перенесено у відповідний розділ.

5

(2 відповідей, залишених у C++)

Як створити рядок довільного розміру в C++ ?

6

(6 відповідей, залишених у C++)

void file_() {
    ifstream file;
    file.open(path, ifstream::in | ios::binary);
    Abonent a = Abonent();
    for (int i = 0; i < size; i++) {
        file.read(a->id); \\ тут помилка
        file.read(a->PIB, 100);
        file.read(a->homenumber);
        file.read(a->worknumber);
        file.read(a->mobilenumber);
        file.read(a->moreinf, 100);
        file.close();
    }
}

я хочу записати в файл потім прочитати з нього але видає декілька помилок

Від модератора: тему перенесено у відповідний розділ.

7

(8 відповідей, залишених у C++)

з чим може буи пов'язаний такий вивід в с++
ПІБ: НННННННННННННННННННННННННННННННННННННННННээээйацIC…
Домашній телефон: 0
Робочий телефон: 0
Мобільний телефон: 0
додаткова інформація про контакт: ННННННННННННННННННННННННННННННННННННННННННННННээээйацIC…

Від модератора: тему перенесено у відповідний розділ.

8

(5 відповідей, залишених у FAQ)

Вибачте не в тему але я тільки що зареєструвалася на сайт і поки не знаю як написати своє запитання на форум, допоможіть будь ласка