Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
83 / 82 / 8
Регистрация: 31.03.2015
Сообщений: 447
1

Переменная которая может принимать два типа

05.03.2016, 20:21. Показов 1411. Ответов 6
Метки нет (Все метки)

Можно ли в С++ сделать так чтобы переменная могла принимать два типа unsigned char и TestClass??
Попробовал сделать через void* но тогда не могу запринтить значение. Может можно как-то использовать Union?

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
#include <iostream>
#include "Cons_Cell.h"
using namespace std;
 
 
class Cell{
    void* value;
    Cell *next;
 
public:
    Cell(){
        value = nullptr;
        next = nullptr;
    }
    Cell(unsigned char x){
        this->value = (unsigned char *)x;
        next = nullptr;
    }
 
    Cell(Cell *x){
        this->value = &x;
        next = nullptr;
    }
 
    void printvalue(){
        cout << this->value;
    }
};
 
int main() {
    Cell *cell = new Cell('x');
    cell->printvalue();
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2016, 20:21
Ответы с готовыми решениями:

Определить максмальный размер, который может принимать переменная
Здравствуйте подскажите как реализовать следующубю задачу. Дана переменная re типа int и нужно...

Какие значения может принимать переменная типа TComponentName
Проблема в следующем. У Series'a есть свойство Name т.е. обращаемся так Chart1.Series.Name. Тип...

Какие значения может принимать переменная а
Помогите разобраться: Какие значения может принимать переменная а, если она определена следующим...

Предположим, что переменная типа CHAR занимает 1 байт, переменная типа INTEGER занимает два байта
Предположим, что переменная типа CHAR занимает 1 байт, переменная типа INTEGER занимает два байта,...

6
BrainOverflow
125 / 129 / 64
Регистрация: 31.03.2013
Сообщений: 556
05.03.2016, 20:27 2
unsigned char
Это что? Новый стандарт что ли? C++20?
0
15 / 15 / 8
Регистрация: 02.03.2016
Сообщений: 37
05.03.2016, 20:32 3
Лучший ответ Сообщение было отмечено Vaderkos как решение

Решение

В реалиях вашего примера можно найти такое быстрое решение с помощью переменной, которая однозначно указывает, какой тип объекта хранится:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Cell{
    void* value;
    Cell *next;
 
    bool valueIsA;
...
   Cell(unsigned char x){
        this->value = (unsigned char *)x;
        valueIsA = true;
...
   Cell(Cell *x){
        this->value = &x;
        valueIsA = false;
...
   void printvalue(){
        if(valueIsA)
          cout << (unsigned char)this->value;
        else
          cout << this->value;
Но я бы завел дополнительный шаблонный класс, который имеет свой метод для вывода
1
83 / 82 / 8
Регистрация: 31.03.2015
Сообщений: 447
05.03.2016, 20:33  [ТС] 4
Sabnik18, https://msdn.microsoft.com/ru-... 53fe1.aspx
0
15 / 15 / 8
Регистрация: 02.03.2016
Сообщений: 37
05.03.2016, 20:35 5
Цитата Сообщение от Sabnik18 Посмотреть сообщение
unsigned char
Это что? Новый стандарт что ли? C++20?
Это беззнаковый char, очень давно существует, как бы не с самого начала
http://stackoverflow.com/quest... igned-char
0
nd2
3416 / 2796 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
05.03.2016, 21:14 6
Цитата Сообщение от Sabnik18 Посмотреть сообщение
Это что?
Типы данных - где нужно использовать char, а где unsigned char?
0
Любитель чаепитий
3587 / 1687 / 519
Регистрация: 24.08.2014
Сообщений: 5,709
Записей в блоге: 1
05.03.2016, 21:23 7
Цитата Сообщение от Vaderkos Посмотреть сообщение
Можно ли в С++ сделать так чтобы переменная могла принимать два типа unsigned char и TestClass
C++
1
2
3
std::pair<unsigned char,TestClass> p;
p.first = 10; // unsigned char
p.second = ...; // TestClass
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2016, 21:23

Какая переменная которая позволяет vba принимать собственные решения
Выбрать один вариант ответа: Переменная которая позволяет vba принимать собственные решения...

Дискретная случайная величина может принимать два значения
Помогите разобраться с задачей, почти в самом начале просто стопорюсь и не знаю откуда брать...

Создать процедуру которая может принимать один параметр 2 типов данных
Помогите пожалуйста написать процедуру которая может принимать переменную типа TComboBox или...

Каксделать что бы переменная могла принимать значение типа real и значение nil?
Допустим есть функция : function kvkor(a:real; b:real) :real; begin If a = nil then Begin ......

Напишите функцию min которая будет принимать два значения и возвращать минимальное
Помогите пожалуйста.... Очень срочно Напишите функцию min которая будет принимать два значения и...

Написать функцию которая будет принимать неограниченное количество аргументов разного типа чтобы поместить их в массив
Смысл идеи состоит в том что функция будет принимать любое количество параметров и внутри функции...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.