Форум программистов, компьютерный форум CyberForum.ru

Конструктор, в аргументах которого передается массив указателей на объекты и размер этого массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Builder Вывести таблицу значений функции и ее разложения в ряд http://www.cyberforum.ru/cpp-beginners/thread1020891.html
Добрый день. Прошу у вас помощи, я не могу определить почему программа не работает, возможно уже глаз замылился. Собираю в Borland C++, могу проект выложить и т.д. Задание: создать Windows-приложение, которое выводит таблицу значений функции и ее разложения в ряд в виде суммы для значений x от xn до xk c шагом h=(xk - xn)/10. В панели интерфейса предусмотреть возможность управления...
C++ найти наименьшее из 4 чисел A,B,C,D. помогите ктонить плиз можете решить для с++ задачу надо найти наименьшее из 4 чисел A,B,C,D. что ток не пробывал не получается!(( т.е ввожу допустим 1 2 5 -1 он выдает 1 или там 5 потомучто min пишу а или с(((решение не правельно в общем то!((( вот: #include<iostream.h> #include<math.h> void main () { floor min,a,b,c,d; cin>>a; cin>>b; cin>>c; cin>>d; http://www.cyberforum.ru/cpp-beginners/thread1020888.html
C++ Только что начал изучать с++
Всем доброго времени суток! Честно сказать,не знаю как объяснить,что именно мне нужно! Но примерно так,вообщем хочу попытаться наваять сам какое нибудь простецкое приложение...Пытаюсь что нибудь творить в программе Dev-C++ Так вот вопрос в том,как сделать чтобы приложение открывалось во весь экран автоматически на любом мониторе??? Уже пролез весь инет, но видимо моих мозгов совсем не достаточно...
C++ Определить расположены ли точки на одной прямой
Даны три точки А(x1, y1), В(x2, y2), С(x3, y3). Определить будут ли они расположены на одной прямой. Если нет, то вычислить угол АВС.
C++ Тип auto в старых версиях компиляторов http://www.cyberforum.ru/cpp-beginners/thread1020852.html
Здравствуйте. Пытаюсь работать с данным циклом, но компилятор выдаёт ошибки. У меня не новая версия VS. Поэтому не поддерживаются некоторые элементы C++11, в данном случае полноценная работа с "auto". Можно ли сделать нечто аналогичное, но работающее для старой версии и как? Заранее спасибо! int weight; for (auto &i: weight) i = 0; { ifstream f("../r.txt"); while...
C++ Запись двоичного файла Ребята, проясните, пожалуйста, ситуацию с двоичным выводом в файл. Конкретно двоичный, а не бинарный - как это осуществить в моём случае. Пока у меня записываются просто числа в обычном представлении. Нужны кракозябры. :) void main() { setlocale(LC_ALL, "RUS"); ofstream outFile("Counts.dat", ios::out|ios::binary); if (! outFile) { cerr << "Файл не может быть... подробнее

Показать сообщение отдельно
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
27.11.2013, 16:05     Конструктор, в аргументах которого передается массив указателей на объекты и размер этого массива
Создайте новую версию класса Stack с конструктором по умолчанию и вторым конструктором, в аргументах которого передается массив указателей на объекты и размер этого массива. Конструктор должен перебирать элементы массива и заносить каждый указатель в стек. Протестируйте класс с массивом объектов string.
require.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//: :require.h
// From "Thinking in C++, 2nd Edition, Volume 2"
// by Bruce Eckel & Chuck Allison, (c) 2001 MindView, Inc.
// Available at [url]www.BruceEckel.com[/url].
// Test for error conditions in programs
// Local "using namespace std" for old compilers
#ifndef REQUIRE_H
#define REQUIRE_H
#include <cstdio>
#include <cstdlib>
#include <fstream>
 
inline void require(bool requirement, 
  const char* msg = "Requirement failed") {
  using namespace std;
  if (!requirement) {
    fputs(msg, stderr);
    fputs("\n", stderr);
    exit(1);
  }
}
 
inline void requireArgs(int argc, int args, 
  const char* msg = "Must use %d arguments") {
  using namespace std;
   if (argc != args + 1) {
     fprintf(stderr, msg, args);
     fputs("\n", stderr);
     exit(1);
   }
}
 
inline void requireMinArgs(int argc, int minArgs,
  const char* msg = 
    "Must use at least %d arguments") {
  using namespace std;
  if(argc < minArgs + 1) {
    fprintf(stderr, msg, minArgs);
    fputs("\n", stderr);
    exit(1);
  }
}
  
inline void assure(std::ifstream& in, 
  const char* filename = "") {
  using namespace std;
  if(!in) {
    fprintf(stderr,
      "Could not open file %s\n", filename);
    exit(1);
  }
}
 
inline void assure(std::ofstream& in, 
  const char* filename = "") {
  using namespace std;
  if(!in) {
    fprintf(stderr,
      "Could not open file %s\n", filename);
    exit(1);
  }
}
#endif // REQUIRE_H ///:~


Stack.h
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Stack.h
#ifndef STACK_H
#define STACK_H
 
class Stack{
    struct Link{
        void* data;
        Link* next;
        Link(void* dat, Link*nxt);
        ~Link();
    }*head;
public:
    Stack();
    Stack(void* mass,int size);
    ~Stack();
    void push(void *dat);
    void * peek();
    void * pop();
 
 
};
#endif


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//Stack.cpp
#include "Stack.h"
#include "require.h"
using namespace std;
 
 
Stack::Link::Link(void* dat, Link*nxt){
    data=dat;
    next=nxt;
}
Stack::Link::~Link(){}
 
 
Stack::Stack(){head=0;}
 
Stack::Stack(void* mass,int size){
    // КАК создать? вот мой бред
    /*
        for(int i=0;i<size;++i)
            push(mass[i]); //push(new std::string(Film[i]))
    std::cout<<mass[0];
    */
}
Stack::~Stack(){require(head==0,"Stack not empty");}
 
void Stack::push(void *dat){
    head=new Link(dat,head);
}
 
void*  Stack::peek(){
    require(head!=0,"Stack empty");
    return head->data;
}
void*  Stack::pop(){
    if(head==0) return 0;
    void*result=head->data;
    Link*OL=head;
    head=head->next;
    delete OL;
    return result;
}
TestStack.cpp
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//TestStack.cpp
#include <iostream>
#include "Stack2.h"
#include <string>
 
 
 
int main(){
    Stack Films;
    std::string Film[25],temp;
    for(char i=0;i<25;i++) {
        temp+="*";
        Film[i]=temp;
        //std::cout<<Film<<std::endl;
        Films.push(new std::string(Film[i]));
    }
 
    std::string  *s1;   
    while ((s1=(std::string *)Films.pop())!=0) {
        std::cout<<*s1<<std::endl;
        delete s1;
    }
    return 0;
 
}

В файле Stack.cpp нужно изменить конструктор, как это реализовать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru