First of all, I am not a very experimented C++ programmer, I am just trying to pass my object oriented programming exam. I know that if I have a class constructor with only one parameter, If I do something like this ->  myClass object = something is like passing something to the constructor with one parameter, right? Then, why does this work fine:
#include <iostream>
using namespace std;
class A
{
public:
    int m;
    A(int M){
        m = M;
    }
    print(){
        cout << "m: " << m << "\n";
    }
};
int main()
{
    A x = 132;
    x.print();
return 0;
}
and this does not:
#include <iostream>
using namespace std;
class A
{
public:
    string m;
    A(string M){
        m = M;
    }
    print(){
        cout << "m: " << m << "\n";
    }
};
int main()
{
    A x = "RANDOMSTRING";
    x.print();
return 0;
}
The error I get in the second case is:
error: conversion from 'const char [13]' to non-scalar type 'A' requested 
I guess it's some kind of problem with that string parameter, but why ?
