Я довольно новичок в C ++.
У меня проблема с тем, что мой конструктор класса , по-видимому, не может инициализировать члена класса вектора. Конструктор должен будет прочитать файл, собрать некоторые данные и затем изменить размер вектора во время выполнения .
. Я создал более простой пример, чтобы сосредоточиться на проблеме.
Вот заголовочный файл (test.h
):
// File Guards
#ifndef __TEST_H
#define __TEST_H
// Including necessary libraries
#include <vector>
// Use the standard namespace!
using namespace std;
// Define a class
class myClass
{
// Public members
public:
// vector of integers
vector<int> vec;
// Declare the constructor to expect a definition
myClass();
};
// Ends the File Guard
#endif
А вот исходный файл:
// Including the necessary headers
#include <iostream>
#include "test.h"
// Defining the constructor
myClass::myClass()
{
// Loop control variable
int i;
// For loop to iterate 5 times
for (i = 0; i < 5; i++)
{
// Populating the vector with 0s
vec.push_back(0);
}
}
// Main function to call the constructor
int main()
{
// Create a "myClass" object
myClass myObject;
// iterating through the vector class member
for (int x : myObject.vec)
{
// Outputting the elements
cout << x + " ";
}
// Return statement for main function
return 0;
}
Я ожидаю, что будут напечатаны пять нулей, но вместо этого ничего не происходит. Я думал об этом некоторое время и еще не нашел решения. Есть идеи, что здесь происходит?