typeid
+ dynamic_cast
#include <iostream>
#include <vector>
#include <random>
#include <typeinfo>
using namespace std;
class Foo {
public:
virtual ~Foo(){}
};
class Bar: public Foo {
private:
size_t c;
static size_t n;
public:
Bar(): c(n++){};
virtual ~Bar(){};
size_t getC() const {return c;};
};
size_t Bar::n(0);
int main() {
std::mt19937 gen;
std::uniform_int_distribution<unsigned> dis(0, 2);
vector<Foo*> vec;
for(size_t i = 0; i < 100; ++i) {
if(dis(gen))
vec.push_back(new Foo);
else
vec.push_back(new Bar);
}
for(auto p: vec) {
if(typeid(*p) == typeid(Bar))
cout << dynamic_cast<Bar*>(p)->getC() << endl;
}
for(auto p: vec)
delete p;
return 0;
}
dynamic_cast
, но тогда придётся обрабатывать исключения. #include <stdio.h>
#include <stdlib.h>
int main() {
size_t n;
scanf("%zu", &n);
int array[n];
for(size_t i = 0; i < n; ++i)
array[i] = rand();
printf("{");
for(size_t i = 0; i < n; ++i) {
printf("%i", array[i]);
if(i < n - 1)
printf(", ");
else
printf("}\n");
}
return 0;
}
/dev
. Находите нужные блочные устройства и просто копируете их содержимое к себе в файлы на локальную машину. Затем на эти файлы натравливаете Device mapper
, lvm
их определит, и ваши группы томов станут доступны.ftp
через CurlFtpFS
, как обычную файловую систему.