Passare un oggetto in una funzione

di il
1 risposte

Passare un oggetto in una funzione

Quando provo a passare un oggetto contenente un puntatore come variabile esemplare in una funzione nel main, il compilatore mi dà questo warning

obj\Debug\main.o||In function `main':|
D:\programmic++\bigstuff\main.cpp|23|undefined reference to `setValues(std::string, largeIntegers&)'|
D:\programmic++\bigstuff\main.cpp|29|undefined reference to `setValues(std::string, largeIntegers&)'|
||=== Build finished: 2 errors, 0 warnings ===|

Il mio codice del main e della funzione
// Somma interi di grandi dimensioni utilizzando la classe largeIntegers.h.
// i numeri vengono letti come array di caratteri. Vanno inseriti al contrario e trasformando ogni cifra in un intero

#include <iostream>
#include "largeIntegers.h"
#include <string>

using namespace std;

void setValues(string, largeIntegers&);             // funzione per inserire i valori

int main()
{
    largeIntegers Intsum;
    string number;

    cout << "Inserire il primo intero:";

    cin >> number;

    largeIntegers Int(number.length());

    setValues(number, Int);

    cin >> number;

    largeIntegers Int2(number.length());

    setValues(number, Int2);

    Int.printInt();

    cout << endl;

    Int2.printInt();

    return 0;
}

void setValues(string Linenum, largeIntegers numint)
{
    int count=0;

    for(int i=Linenum.length()-1; i>=0; i--)
    {
        int digit = Linenum[i]-48;
        numint.insertAt(count,digit);

        count++;
    }
}
e dichiarazione della classe
#ifndef LARGEINTEGERS_H
#define LARGEINTEGERS_H


class largeIntegers
{
    public:
        largeIntegers(int size = 1);
        ~largeIntegers();
        void insertAt(int index, int numb);
        void sumInt(const largeIntegers& otherInt, const largeIntegers& other2Int);
        void minusInt(const largeIntegers& otherInt, const largeIntegers& other2Int);
        void multiInt(const largeIntegers& otherInt, const largeIntegers& other2Int);
        bool isBigger(const largeIntegers& otherInt);
        void printInt() const;
    private:
        int *num;
        int maxSize;
        int length;
};

#endif // LARGEINTEGERS_H

1 Risposte

  • Re: Passare un oggetto in una funzione

    void setValues(string, largeIntegers&);    
    Io vedo passaggio per riferimento quà. Nello sviluppo invece il passaggio è per valore da cui l'errore del compilatore.
Devi accedere o registrarti per scrivere nel forum
1 risposte