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

Для чего typedef struct - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Виснет программа http://www.cyberforum.ru/cpp-beginners/thread929962.html
Задача следующая: Напишите программу, которая приблизительно рассчитывает значение математической константы е, используя формулу : е = 1 + 1/1! +1/2! +1/3! + ..... Программу написал, но почему при вводе точности (под точностью я имею в виду до какого факториала программа будет считать) программа виснет и ничего не происходит. Помогите разобраться. #include<iostream> using namespace std ; int...
C++ Параметр функции Задаюсь вопросом для чего это нужно. const string &Function(int &i; int &j) { //код функции. } Адрес у i и j, это понятно для того что-бы если в функции будут изменяться i и j, чтоб они и откуда передаются изменились. Но вот адрес в названии функции мне совсем не понятен, для чего он нужен? http://www.cyberforum.ru/cpp-beginners/thread929959.html
C++ Файловый ввод-вывод - "A + B"
Казалось бы простенькая задача, а решить я её не могу :) Пробовал несколько вариантов, всё равно не выходит :) Накидал такое: #include <stdafx.h> # include <iostream> # include <fstream> #include <conio.h> using namespace std; int d, n; int sum (int l, int r)
Длинные фиббоначи C++
От нечего делать написал это: // ConsoleApplication1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <vector> using namespace std; void fo (char a)
C++ О перевыделении памяти для массива объектов http://www.cyberforum.ru/cpp-beginners/thread929938.html
Мне необходимо сделать динамический массив объектов класса, который будет расширяться при необходимости. Понятно, что для такого существует выделение через malloc и перевыделение через realloc, но malloc не годится для объектов, тк не вызывает конструктор. Посоветуйте максимально эффективный с точки зрения производительности вариант пожалуйста (думал над выделением новой памяти через new,...
C++ сортировка вектора sort() программа заполняет вектор рандомными числами в диапазоне от 1 до 100 сортирует с помощью алгоритма sort(.begin(),.end()) - в восходящем порядке можно ли отсортировать с помощью sort() - в нисходящем порядке? #include <iostream> using namespace std; #include <ctime> #include <vector> подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,126
Записей в блоге: 26
28.07.2013, 18:41     Для чего typedef struct
По поводу заведения typedef'а для указателя на структуру. На мой взгляд это тоже не очень удобно. Потому что в этом случае невозможно будет задавать указатель на const. Т.е. вот так можно

C
typedef struct {
  ...
} struct_t;
 
struct_t *ptr1;
const struct_t *ptr2;
а вот так нельзя (в смысле можно, но получим совсем не то, что хотели):

C
typedef struct {
  ...
} struct_t;
 
typedef struct_t * struct_ptr_t;
 
struct_ptr_t ptr1;
const struct_ptr_t ptr2;
а чтобы получить то, что хотели, то надо писать:

C
typedef struct {
  ...
} struct_t;
 
typedef struct_t * struct_ptr_t;
typedef const struct_t * struct_const_ptr_t;
 
struct_ptr_t ptr1;
struct_const_ptr_t ptr2;
Лично моё мнение - заведение отдельного typedef'а на указатель скорее приводит к бардаку и снижению читабельности кода, чем к порядку
 
Текущее время: 04:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru