Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // Bab
- //
- // Created by Кирилл Киселев on 15/02/2019.
- // Copyright © 2019 Кирилл. All rights reserved.
- //
- #include <iostream>
- #include <stdio.h>
- #include <stdlib.h>
- class vect{
- //public:
- int N;
- // static const int N = 3;
- int * body;
- //если убрать конструктор, нельзя будет создать 12 одинаковых
- public:
- vect(){
- for(int i = 0; i < N; i++){
- body[i] = 0;
- }
- printf("vect() = "); print(); printf("\n");
- }
- vect(const int *init, int size){
- N = size;
- body = new int[N];
- // size = size > N ? N : size;
- for(int i = 0; i < size; i++){
- body[i] = init[i];
- }
- for(int i = size; i < N; i++){
- body[i] = 0;
- }
- printf("vect(int*) = "); print(); printf("\n");
- }
- vect(vect const &v){
- body = new int[N = v.N];
- for(int i = 0; i < N; i++){
- body[i] = v.body[i];
- }
- printf("vect(vect) ="); print(); printf("\n");
- }
- vect & operator = (vect const & v){
- N = v.N;
- delete [] body;
- body = new int[N];
- for(int i = 0; i < N; i++){
- body[i] = v.body[i];
- }
- printf("vectr :: operator = "); print(); printf("\n");
- return * this;
- }
- void print() const {
- printf("(");
- for (int i = 0; i < N; i++){
- printf("%d", body[i]);
- }
- printf(")");
- }
- ~vect(){
- printf("~vect: ");
- printf("\n");
- delete [] body;
- }
- //написано для того, чтобы можно было писать v[i]
- int operator[](int x) const {
- return body[x];
- }
- int & operator[](int x){
- return body[x];
- }
- int size() const {
- return N;
- }
- };
- //vect :: N область видимости
- //можно добавить амперсент and const
- int sum(vect const &v){
- v.print();
- int res = 0;
- for(int i = 0; i < v.size(); i++){
- res += v[i];
- //res += v.body[i];
- }
- return res;
- }
- ////int & b = a;
- //int main(){
- // srand(time(NULL));
- // int v[2] = {5, 7};
- // vect a, b(v, 2);
- // printf("a = "); a.print(); printf("\n");
- // printf("b = "); b.print(); printf("\n");
- // printf("sum of b = %d", sum(b));
- //// vect c;
- // vect *c;
- // if (rand() < rand()){
- // c = new vect(v, 2);
- // } else{
- // c = new vect();
- // }
- // printf("sum of c = %d", sum(*c));
- // delete c;
- //
- //}
- //
- //
- //int main(){
- // vect points[10];
- // vect *v = new vect[10];
- //// vect *v = new vect[1]; //эквивалентно когда единичный элемент
- //
- // delete [] v;
- //}
- int main(){
- int t[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- vect v(t, 10);
- // v[5] = 0;
- printf("sum of v = %d\n", sum(v));
- }
- //vect & operator = (vect const & v){
- //N = v.N
- //delete [] body
- //body =
- //
- //return *this
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement