简体   繁体   中英

calling constructor of a class in another class

I have two classes named info and i2 in qt. info is a c++ class and i2 is a Qt designer from class . I want to use i2 as an environment for testing my info class.
I included info.h in the header of i2.my info class has two constructor like below:

info();
info(const void *ip, const char* pw, const void *hostName);

now I want to make an object of info in i2 class and pass those three parameters( ip and pw and hostname) to info and use them in my program. like below:

private:
    Ui::i2 *ui;
    info inf("172.30.6.91", "mypw", "heydari.f");

this doesn't work. I got these errors:

/home/heydari.f/i1/i2.h:48: error: expected identifier before string constant
     info inf("172.30.6.91", "mypw", "heydari.f");
              ^~~~~~~~~~~~~

and:

/home/heydari.f/i1/i2.h:48: error: expected ‘,’ or ‘...’ before string constant

my info class header:

#ifndef INFO_H
#define INFO_H
#include <fstream>
#include <vector>
#include <libssh/libssh.h>

class info
{
private:

    ssh_session my_ssh_session = ssh_new();
    const void* _hostName;
    const void* _ip;
    const char* _password;

public:
    info();
    info(const void *ip, const char* pw, const void *hostName);
    ~info();
    //some another functions

};

#endif // INFO_H#ifndef KERNEL_H

my i2 class header:

#ifndef I2_H
#define I2_H
#include <QDialog>
#include "info.h"

namespace Ui {
class i2;
}

class i2 : public QDialog
{
    Q_OBJECT

public:
    explicit i2(QWidget *parent = 0);
    ~i2();

private slots:
//some push button functios

private:
    Ui::i2 *ui;
    info inf;

};

#endif // I2_H

Use a braced-init-list :

info inf{"172.30.6.91", "mypw", "heydari.f"};

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM