C/C++

С++. Программирование. Нужен совет.

Требуется занести в качестве аргумента в функцию array своего класса. Пытался. Не получилось. В инете почему-то советы только об обычном массиве. Попытался создать новый array внутри функции, а входным аргументом занести первый элемент нужного мне массива, чтоб скопировать адрес первого элемента нужного массива в новый. Не получилось. Кто-нибудь может помочь с реализацией одного из этих вариантов (если второй вообще возможен).
Представления не имею зачем в класс передавать массив этого-же класса, но вроде срабатывает

 class test { 
int a;
public:
test(int _a) : a(_a) {}
void print(vector b){
for(auto i:b)
cout
Алексей Рахманов
Алексей Рахманов
78 146
Лучший ответ
Турат Сатылганов Я пытался. Вот что получилось
Турат Сатылганов Мне это надо для того, чтобы сделать функцию sort для класса. Код самой функции есть и он рабочий, но я не знаю, как его вставить в функцию.
Турат Сатылганов #include <algorithm>
#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++;
}
}
Вас интересует технический момент. Вот его решение.
 #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
Сергей Мас
Сергей Мас
95 877
Турат Сатылганов Нет, но спасибо. Ваш вариант мне не подходит. Оказалось, что надо было использовать (array <MyClass, 6> &obj). И пожалуйста, пишите попроще. Я ещё не дорос, чтоб понимать такой код:)
Если вы хотите передать ваш собственный класс в качестве аргумента функции, вам необходимо определить соответствующий тип данных в объявлении функции и передавать объекты этого класса как аргументы. Вот пример:

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