Cplusplus – die besten Beiträge

Was ist der Sinn hinter dem Überladen von Operatoren in C++ und wie funktioniert das genau?

Hi, wir haben uns gerade in der Vorlesung mit diesem Thema beschäftigt, ich habe aber nicht wirklich verstanden wie das funktioniert und wozu das ganze gut sein soll...

War leider auf Englisch, aber unser Prof hatte irgendwie was davon erzählt, dass das Überladen von Operatoren nützlich ist wenn man zb Plusrechnen mit dem + Operator nicht nur auf Zahlen beziehen möchte.

Man könnte ja auch irgendwie Objekte zusammenzählen, die man in irgendwelchen Klassen definiert hat.

Ich verstehe das irgendwie nur zur Hälfte, macht es Sinn sich das so vorzustellen, dass c++ Vektoren normal nicht über den + Operator addieren kann, und ich den Operator dann "überlade" und ihm damit die nötige zusätzliche Funktion dafür gebe und er danach zb auch Vektoren die ich über eine Klasse oder ein Struct definiert habe zusammenrechnen kann ?

Und ich frage mich etwas wie die überladung dann genau funktioniert, irgendwie unterscheiden sich diese dann ja weil es ja unäre und äre operatoren gibt, also welche die sich nur auf ein oder zwei Objekte beziehen...

Wäre nett wenn mir jemand weiterhelfen könnte.

Das hier ist zb eine Überladung des + Operators die ich nicht verstehe, was bezwecke ich damit ? Dass ich 2 Objekte des Typs RationalNumber die ich davor in einer Klasse definiert habe addieren kann ?

Bild zum Beitrag
Computer, Schule, programmieren, Cplusplus

Mein C++ Qt creator Programm stürzt bei eingaben von umlauten in ein Textfeld ab wie kann ich das verhindern?

Hallo in meinem Programm soll man wenn man einen text eingibt bestimmte dinge analysieren können(Zahl der Buchstaben, Zahl der Vokal ,...) ? allerdings stürzt das Programm ab, sobald man Umlaute eingibt

Mein bisheriger code aus mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->pushButton->hide();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_btnBuchstaben_clicked()
{
    DeleteLetter();
    CountLetter();
    ShowLetter();

}

void MainWindow::DeleteLetter()
{
    for (int i=0;i<256;i++)
        Buchstaben[i]=0;
}

void MainWindow::ShowLetter()
{
    QString work="";
    QString einzel;
    QString zahl;
    ui->AnalyseWidget->clear();
    ui->AnalyseWidget->addItem("Auswertung");
    for (int i=0;i<256;i++){
        einzel ="  _____ ";
        if (i>=32)
            einzel[0]=char(i);
        else {
            if (i<10){
                einzel[0]='0';
                einzel[1]='0'+i;
            }
            else if (i< 20) {
                einzel[0]='1';
                einzel[1]='0'+i-10;
            }
            else if (i<30) {
                einzel[0]='2';
                einzel[1]='0'+i-20;

            }
            else {
                einzel[0]='3';
                einzel[1]='0'+i-30;
            }
        }
        zahl = QString::number(Buchstaben[i]);
        for (int j = zahl.length()-1;j>=0;j--)
            einzel[7-zahl.length()+j]=zahl[j];
        work = work + einzel;
        if ((i+1)%8==0)
        {
            ui->AnalyseWidget->addItem(work);
            work="";
        }
    }

}

void MainWindow::CountLetter()
{
    QString Area = ui -> EingabeEdit -> toPlainText();
    for(int i = 0; i < Area.length();i++)
        Buchstaben[Area[i].toLatin1()]++;
}

void MainWindow::on_btnWoerter_clicked()
{
    CountWords();
}

void MainWindow::CountWords()
{
    QString Area;
    Area = ui -> EingabeEdit -> toPlainText();
    int i = 0, w = 0;
    bool Word = false;
    while (i < Area.length())
    {
        if (Area[i] == ' ' && Word)
        {
            Word = false;
            w++;
        }
        if (Area[i] == ' ' && !Word)
        {

        }
        if (Area[i] != ' ' && Word)
        {

        }
        if (Area[i] != ' ' && !Word)
        {
            Word = true;
        }
        i++;
    }
    if (Word == true)
    {
        w++;
    }
    QString o = QString::number(w);
    QString output = "Der Text hat " + o + " Wörter";
    ui -> AnalyseWidget -> clear();
    ui -> AnalyseWidget -> addItem(output);

}

//Vokale - aus vorhandenem Array rausholen
//Zahlen nachschauen und ausgeben



Computer, Technik, programmieren, Cplusplus, Qt Creator

Meistgelesene Beiträge zum Thema Cplusplus