не могу скомпилировать многофайловый проект
main.cpp:
#include <iostream>
#include <string>
#include <fstream>
#include "Dinamic.h"
using namespace std;
#define RETURN return 0
int main()
{
setlocale(LC_ALL,"ru");
cin.exceptions(ios::failbit | ios::badbit);
Dinamic arr;
arr.push_back(9);
arr.push_back(74);
arr.push_back(23);
arr.push_back(14);
arr.PrintAllElementInArray("\t");
arr.resize(20);
cout<<endl<<endl;
arr.PrintAllElementInArray();
RETURN;
}
Dinamic.cpp:
#include <iostream>
#include <string>
#include "Dinamic.h"
using namespace std;
class Dinamic
{
public:
//Constructor
Dinamic()
{
size_=0;
__Array = new int[size_]; //create empty array
}
//Destructor
~Dinamic()
{
delete[] __Array; //clean memory
}
//method push back
void push_back(const int& value)
{
int* array_buffer = new int[(this->size_)+1]; //create new array
for(int i = 0; i < this->size_; i++)
{
array_buffer[i] = __Array[i];
}
array_buffer[this->size_] = value; //add new element
size_++;
delete[] __Array; //clean old array
__Array = array_buffer; //update pointer
}
//method Print all array
void PrintAllElementInArray(const string& separation)
{
for(int i = 0; i < this->size_; i++)
{
if(i==(this->size_-1)) //if final iteration
{
cout<<__Array[i]<<endl;
break;
}
cout<<__Array[i]<<separation;
}
}
//method pop back
void pop_back()
{
size_--;
int* array_buffer = new int[this->size_];
for(int i = 0; i < this->size_; i++)
{
array_buffer[i] = __Array[i];
}
delete[] __Array;
__Array = array_buffer;
}
//return element by index
int& ElementByIndex(const int& index)
{
return __Array[index];
}
//Get size
int& size()
{
return size_;
}
//is empty?
bool empty()
{
if(this->size_ > 0) {
return false;
}
else {
return true;
}
}
//resize array
void resize(const int& New_size,const int& values)
{
int* array_buffer = new int[New_size];
for(int i = 0; i < this->size_; i++)
{
array_buffer[i]=__Array[i];
}
for(int i = (this->size_); i<New_size;i++)
{
array_buffer[i] = values;
}
this->size_ = New_size;
delete[] __Array;
__Array = array_buffer;
}
private:
int size_; //size array
int* __Array; //main array
};
Dinamic.h:
#ifndef _IS_GUARD_
#define _IS_GUARD_
#include <iostream>
#include <string>
using namespace std;
class Dinamic
{
public:
Dinamic();
~Dinamic();
void push_back(const int& value);
void PrintAllElementInArray(const string& separation="\n");
void pop_back();
int& ElementByIndex(const int& index);
int size();
bool empty();
void resize(const int& New_size,const int& values=0);
private:
int size_;
int* __Array;
};
#endif // _IS_GUARD_
run.sh(файл для компиляции и запуска программы):
clear;
g++ main.cpp Dinamic.cpp -o Programm;
./Programm
Ошибка:
В .cpp
файле нужно только написать реализацию методов класса примерно так:
//Constructor
Dinamic::Dinamic() {
size_=0;
__Array = new int[size_]; //create empty array
}
...
//Get size
int& Dinamic::size() {
return size_; }
Заголовок class Dinamic {
с объявлениями переменных класса объявлять второй раз не нужно.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Когда нажимаю на кнопку несколько раз, выполняет за 1 секунду по несколько разВ чем проблема?
Нужен инструмент, способный создавать сайт по методологии БЭМ, а для этого нужно как-то объединять отдельные независимые блоки html кода, к которому...
Есть витрина товара, имеется кнопка Добавить в корзину и при нажатии на неё товар добавляется в LocalStorage и отображается в корзине․