[C++] Tablica w konstruktorze klasy
Ostatnio zmodyfikowano 2015-08-11 23:23
Lora |
» 2015-08-06 23:01:11 Wygląda na to, że twój kompilator tego nie obsługuje. Mi na Code::Blocksie to działa, ale z tego co wiem VS 2013 nie wspiera w 100% c++11. |
|
carlosmay Temat założony przez niniejszego użytkownika |
» 2015-08-08 01:04:34 Na razie zostawiam temat. Z vectorem jest podobnie jak z tradycyjnymi tablicami. Sprawa dodatkowo się komplikuje, że w deklaracji klasy nie można od razu utworzyć określonej wielkości kontenera vector, bo krzyczy że ty nie jest obsługiwany. Nawet jak dam w nawiasie gałą 4. Później muszę push_back()'iem po kolei dodawać kolejne komórki vectora (też w klamrach jak tablice). Za dużo kombinowania, a efekt mierny. (obecny kod działa) Poszukam rozwiązania i jak coś wymyślę to wrzucę kod. (może przesiadka na vs15). Tymczasem dzięki za wskazówki, jest nad czym główkować. |
|
carlosmay Temat założony przez niniejszego użytkownika |
» 2015-08-11 23:23:45 Visual 15: Plik nagłówkowy: #pragma once namespace SALES { const int Quarters = 4; class Sales { private: double m_sales[ Quarters ]; double m_averages; double m_max; double m_min; double Max( const double ar[] ) const; double Min( const double ar[] ) const; double Aver( const double ar[] ) const; public: Sales(); Sales( double ar[] ); ~Sales(); Sales * SetSales(); void Show(); }; }
Plik z metodami: (wklejam tylko te, w których była kosmetyka) using namespace SALES;
Sales::Sales() : m_averages( 0 ) , m_max( 0 ) , m_min( 0 ) , m_sales { 0, 0, 0, 0 } { }
Sales::Sales( double ar[] ) : m_averages( Aver( m_sales ) ) , m_max( Max( m_sales ) ) , m_min( Min( m_sales ) ) , m_sales { ar[ 0 ], ar[ 1 ], ar[ 2 ], ar[ 3 ] } { }
Plik użycia klasy Sales: #include <iostream> #include "Sales.h"
int main() { using namespace SALES; double temp[] = { 11897.15, 22658.24, 78533.39, 44784.41 }; Sales y2014( temp ); Sales y2015; Sales * p_y2015 = & y2015; p_y2015->SetSales(); std::cout << "ROK ROZLICZENIOWY 2014" << std::endl; y2014.Show(); std::cout << "ROK ROZLICZENIOWY 2015" << std::endl; y2015.Show(); std::cout << std::endl; system( "pause" ); }
Jednak to kompilator utrudniał życie. Jeszcze raz dzięki za wskazówki. |
|
1 « 2 » |