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

Правильно ли я понимаю ссылки и указатели. Работу с ними. Я сам прокомментировал код. Скажите правильно или нет. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разбить входную строку, состоящую из трех слов, на слова http://www.cyberforum.ru/cpp-beginners/thread516590.html
Нужно написать программу, которая записывает входную строку состоящюю из трех слов в три разных(по слову в каждую) строки. Желательно без использования библиотек, кроме iostream.
C++ задача записать в массив отрицательные элементы матрицы в массив и вывести их задача записать в массив отрицательные элементы матрицы в массив и вывести их #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread516584.html
Исправить ошибки в программе C++
Есть программа: #include <iostream.h> #include <conio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <stdio.h> int* P1,*P2; long int n,raz1,raz2,chek=0;
Массив и сонный студент C++
Прошу помощи. Что нужно от программы : Номер максимального элемента массива Элементы массива между первым и вторым нулевыми элементами, номера первого и второго нолей Преобразование массива таким образом, чтобы в первой его половине были рассположены 3 элемента по модулю, остальные в случайном порядке Что имеется в данный момент : Макс. элемент ищеться
C++ есть функция из библиотеки string для взятия из строчки определенного символа? http://www.cyberforum.ru/cpp-beginners/thread516548.html
ну, собственно, в названии темы я уже указал свой вопрос, но повторюсь: есть функция из библиотеки string для взятия из строчки определенного символа? я делаю программу, работаю со строками без индексации, а суть заключается в работе с самими символами. мало знаю о string, поэтому хочу узнать побольше :) заранее всем спасибо :)
C++ Создать файл, содержащий информацию о студентах, которые прибыли в лагерь Создать файл, содержащий информацию о студентах, которые прибыли в лагерь. Структура записи: - Фамилия, - Номер отряда, - Наименование факультета. Распечатать список по номерам отрядов, начиная с наименьшего номера и заканчивая самым большим. Вывести информацию о конкретного студента X. Количество отрядов> 5, X вводится с клавиатуры. Подскажите ещо пожалуста. подробнее

Показать сообщение отдельно
Casper-SC
 Аватар для Casper-SC
3465 / 1684 / 173
Регистрация: 27.03.2010
Сообщений: 4,824
Записей в блоге: 1
12.03.2012, 03:31     Правильно ли я понимаю ссылки и указатели. Работу с ними. Я сам прокомментировал код. Скажите правильно или нет.
Cat.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
#pragma once
 
namespace Casper
{
    class Cat
    {
    private:
        unsigned int age;
        float weight;
 
    public:
        Cat(void);
        Cat(unsigned int age, float weight);
        ~Cat(void);
 
        unsigned int GetAge() const;
        void SetAge(unsigned int newAge);
 
        float GetWeight() const;
        void SetWeight(float newWeight);
 
        void Meow();
    };
}

Cat.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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "Cat.h"
#include <iostream>
 
namespace Casper
{
    Cat::Cat(void)
    {
        age = 0;
        weight = 0;
    }
 
    Cat::Cat(unsigned int age, float weight)
    {
        this->age = age;
        this->weight = weight;
    }
 
    Cat::~Cat(void)
    {
    }
 
    unsigned int Cat::GetAge() const //const означает, что метод не может изменять значения класса
    {
        return age;
    }
 
    void Cat::SetAge(unsigned int newAge)
    {
        age = newAge;
    }
 
    float Cat::GetWeight() const
    {
        return weight;
    }
 
    void Cat::SetWeight(float newWeight)
    {
        weight = newWeight;
    }
 
    void Cat::Meow()
    {
        std::cout << "Мяу" << std::endl;
    }
}


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
#include <iostream>
#include "Cat.h"
 
using namespace std;
 
const Casper::Cat * const DisplayCatInfo(const Casper::Cat * const cat);
Casper::Cat & GetNewCat();
 
int main()
{
    setlocale(LC_ALL, "Russian");
        //Создаю ссылку на объект типа Cat, ссылка не может быть null, она может указывать
        //только на этот объект
    Casper::Cat & rCat = GetNewCat(); //Получаю адрес значения находящегося в куче
    DisplayCatInfo(&rCat); //передаю значение по ссылке (тоесть адрес самого значения)
 
    Casper::Cat cat(5, 2.45F); //тут создаю объект в стеке
    DisplayCatInfo(&cat); //передаю адрес объекта созданного в стеке
 
    system("pause");
    return EXIT_SUCCESS;
}
 
Casper::Cat & GetNewCat()
{
        //Создаю указатель, который указывает на объект созданный в куче
    Casper::Cat * cat = new Casper::Cat(3, 2.89F);
        //Возвращаю значение, сам указатель "умирает".
    return *cat;
}
 
//Создаётся локальный для функции указатель, который получает адрес значения ему переданного
const Casper::Cat * const DisplayCatInfo(const Casper::Cat * const cat) //(Параметр) Константный указатель на константный объект
{
    cout << "Возраст кота: " << cat->GetAge() << "\tВес кота: " << cat->GetWeight() << endl;
    return cat; //чисто для примера, так как не имеет смысла
}
Я прокоментировал в коде. Скажите правильно ли я всё понимаю?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru