C/C++
С++. Программирование. Нужен совет.
Требуется занести в качестве аргумента в функцию array своего класса. Пытался. Не получилось. В инете почему-то советы только об обычном массиве. Попытался создать новый array внутри функции, а входным аргументом занести первый элемент нужного мне массива, чтоб скопировать адрес первого элемента нужного массива в новый. Не получилось. Кто-нибудь может помочь с реализацией одного из этих вариантов (если второй вообще возможен).
Представления не имею зачем в класс передавать массив этого-же класса, но вроде срабатывает
class test {
int a;
public:
test(int _a) : a(_a) {}
void print(vector b){
for(auto i:b)
cout
Вас интересует технический момент. Вот его решение.
#include
#include
#include
#include
#include
#include
#include
using namespace std;
class MyClass {
array box;
public:
MyClass() {
iota(box.begin(), box.end(), 1);
}
void myShuffle() {
const auto now = chrono::system_clock::now();
const auto time_since_epoch = now.time_since_epoch();
const auto count = time_since_epoch.count();
const auto seed = static_cast(count);
auto gen = default_random_engine(seed);
shuffle(box.begin(), box.end(), gen);
}
void show() const {
size_t n = 0;
for (auto x : box) {
cout
Турат Сатылганов
Нет, но спасибо. Ваш вариант мне не подходит. Оказалось, что надо было использовать (array <MyClass, 6> &obj). И пожалуйста, пишите попроще. Я ещё не дорос, чтоб понимать такой код:)
Если вы хотите передать ваш собственный класс в качестве аргумента функции, вам необходимо определить соответствующий тип данных в объявлении функции и передавать объекты этого класса как аргументы. Вот пример:
class MyClass {
// определение вашего класса
};
void myFunction(MyClass obj) {
// ваш код
}
int main() {
MyClass myObj;
myFunction(myObj); // вызов функции с передачей объекта вашего класса в качестве аргумента
return 0;
}
Вы можете использовать ваш класс array в аналогичном сценарии. Просто убедитесь, что у вас правильно определены конструкторы, деструкторы и операторы копирования или перемещения, если они необходимы для вашего класса.
class MyClass {
// определение вашего класса
};
void myFunction(MyClass obj) {
// ваш код
}
int main() {
MyClass myObj;
myFunction(myObj); // вызов функции с передачей объекта вашего класса в качестве аргумента
return 0;
}
Вы можете использовать ваш класс array в аналогичном сценарии. Просто убедитесь, что у вас правильно определены конструкторы, деструкторы и операторы копирования или перемещения, если они необходимы для вашего класса.
#include
class MyClass {
public:
int value;
MyClass(int val) : value(val) {}
};
void processMyClass(const MyClass& obj) {
std::cout
Похожие вопросы
- Как расценивать мое отношение к программированию? Нужна помощь молодому, возможно, будущему прогеру.
- Программирование, нужна помощь в решение задачи! На си или си++
- Программирование на С++
- Программирование на C++
- Как начать изучать программирование?
- Доброго дня! Хочу сменить сферу деятельности . Заинтересовал вариант программирования .
- Программирование на C++
- Книги по программированию.
- Может ли новичок в программирование начать с c++/Gamedev
- Чем отличаются языки программирования ???
#include <array>
#include <chrono>
#include <iostream>
#include <random>
#include <string>
using namespace std;
class Card
{
public:
int znachenie;
int mast;
Card(int znachenie, int mast)
{
this->znachenie = znachenie;
this->mast = mast;
}
void Ssort(array <Card> &iop)
{
//Card zamena(0, 0);
// array <Card, 6> iop={zamena, zamena, zamena, zamena, zamena, zamena};
//( (iop[])= &cop;
int fop2 = 0;
Card gank(0, 0);
while (fop2 < 6)
{
for (int fop = 0; fop < 6; fop++)
{
if (iop[fop] == iop[fop + 1])
{
gank = iop[fop];
iop[fop] = iop[fop + 1];
iop[fop + 1] = gank;
}
}
fop2++;
}
}